remove bs, and make shit work

This commit is contained in:
Jordan Koch 2019-11-20 14:40:50 -05:00
parent 37320d65f1
commit ff5c065eae
30 changed files with 1197 additions and 279 deletions

View File

@ -2,13 +2,4 @@ use_frameworks!
target 'UIDeviceModelNames_Example' do target 'UIDeviceModelNames_Example' do
pod 'UIDeviceModelNames', :path => '../' pod 'UIDeviceModelNames', :path => '../'
target 'UIDeviceModelNames_Tests' do
inherit! :search_paths
pod 'Quick', '~> 1.2.0'
pod 'Nimble', '~> 7.0'
pod 'FBSnapshotTestCase' , '~> 2.1.4'
pod 'Nimble-Snapshots' , '~> 6.3.0'
end
end end

16
Example/Podfile.lock Normal file
View File

@ -0,0 +1,16 @@
PODS:
- UIDeviceModelNames (0.1.0)
DEPENDENCIES:
- UIDeviceModelNames (from `../`)
EXTERNAL SOURCES:
UIDeviceModelNames:
:path: "../"
SPEC CHECKSUMS:
UIDeviceModelNames: 8aafecefd3ceb720a02520b31622c6ff548eadb5
PODFILE CHECKSUM: e39a14efedf62699ec7d6fa002c61eacb49746a7
COCOAPODS: 1.8.3

View File

@ -0,0 +1,22 @@
{
"name": "UIDeviceModelNames",
"version": "0.1.0",
"summary": "A short description of UIDeviceModelNames.",
"description": "TODO: Add long description of the pod here.",
"homepage": "https://github.com/Jordan Koch/UIDeviceModelNames",
"license": {
"type": "MIT",
"file": "LICENSE"
},
"authors": {
"Jordan Koch": "me@jordanko.ch"
},
"source": {
"git": "https://github.com/Jordan Koch/UIDeviceModelNames.git",
"tag": "0.1.0"
},
"platforms": {
"ios": "8.0"
},
"source_files": "UIDeviceModelNames/Classes/**/*"
}

16
Example/Pods/Manifest.lock generated Normal file
View File

@ -0,0 +1,16 @@
PODS:
- UIDeviceModelNames (0.1.0)
DEPENDENCIES:
- UIDeviceModelNames (from `../`)
EXTERNAL SOURCES:
UIDeviceModelNames:
:path: "../"
SPEC CHECKSUMS:
UIDeviceModelNames: 8aafecefd3ceb720a02520b31622c6ff548eadb5
PODFILE CHECKSUM: e39a14efedf62699ec7d6fa002c61eacb49746a7
COCOAPODS: 1.8.3

View File

@ -0,0 +1,599 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
297880D901029A169EB76860394F5C75 /* Pods-UIDeviceModelNames_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA71652B2095614791BDD130DE297B3 /* Pods-UIDeviceModelNames_Example-dummy.m */; };
3948AD1A4612548A994EFBEC318704F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; };
48FDAA15818E101D0C3A4DB0E2C2B314 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; };
5B384777D195BEB0DBDCF29F6CB1F12A /* Pods-UIDeviceModelNames_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 67A0792FC2B9BC668AE7246392AB0728 /* Pods-UIDeviceModelNames_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
6A1690482CE9234E52907F317AAB7C78 /* UIDeviceModelNames.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9009344D5CAA0AF4B8D8672D33AF3E6D /* UIDeviceModelNames.swift */; };
DBEF749ED11D1F94BCC9091080E9A417 /* UIDeviceModelNames-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C4524A1A78016C2B24A16757E08A53 /* UIDeviceModelNames-dummy.m */; };
E98E8F3743B8961218707EC9752904B0 /* UIDeviceModelNames-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B8A12BE42A06F45AEFAB0B542EE3FB3 /* UIDeviceModelNames-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
112FE6492EF16ACE559E81237A8D88A2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = B7A6255C43F5E798197FC129C9F98419;
remoteInfo = UIDeviceModelNames;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
030E93F2F8AB1BC8B78EE444CBF3A529 /* UIDeviceModelNames.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = UIDeviceModelNames.modulemap; sourceTree = "<group>"; };
0B8A12BE42A06F45AEFAB0B542EE3FB3 /* UIDeviceModelNames-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDeviceModelNames-umbrella.h"; sourceTree = "<group>"; };
116FBF73EE650C2828D45D6F132D88B5 /* UIDeviceModelNames.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = UIDeviceModelNames.xcconfig; sourceTree = "<group>"; };
25C283E3AA2B3D98237E4D7D3A1D9B02 /* UIDeviceModelNames.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = UIDeviceModelNames.framework; path = UIDeviceModelNames.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
32386F3F275ABE22A0516B848F30510C /* Pods-UIDeviceModelNames_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-UIDeviceModelNames_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
37525FD9309536C428E10DE1161490E3 /* Pods_UIDeviceModelNames_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_UIDeviceModelNames_Example.framework; path = "Pods-UIDeviceModelNames_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
525E04C3182C2655F5BD3122A5373581 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-UIDeviceModelNames_Example.debug.xcconfig"; sourceTree = "<group>"; };
67A0792FC2B9BC668AE7246392AB0728 /* Pods-UIDeviceModelNames_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-UIDeviceModelNames_Example-umbrella.h"; sourceTree = "<group>"; };
68BA6502687C4EFF3C239751A827DF66 /* UIDeviceModelNames-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDeviceModelNames-prefix.pch"; sourceTree = "<group>"; };
81D1255655AA5EAA7C8E56A8C34B5591 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
850AEBF1C8FF5535AB8141FABF92CADB /* Pods-UIDeviceModelNames_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-UIDeviceModelNames_Example-Info.plist"; sourceTree = "<group>"; };
887183BD59C5C4CD1ECAC444DCFB6F1A /* Pods-UIDeviceModelNames_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-UIDeviceModelNames_Example.modulemap"; sourceTree = "<group>"; };
88C4524A1A78016C2B24A16757E08A53 /* UIDeviceModelNames-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIDeviceModelNames-dummy.m"; sourceTree = "<group>"; };
8F3FCE1132AC36F24F553829F5A8631D /* Pods-UIDeviceModelNames_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-UIDeviceModelNames_Example-acknowledgements.plist"; sourceTree = "<group>"; };
9009344D5CAA0AF4B8D8672D33AF3E6D /* UIDeviceModelNames.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIDeviceModelNames.swift; path = UIDeviceModelNames/Classes/UIDeviceModelNames.swift; sourceTree = "<group>"; };
9A6F22E25CBB956F33C8BA781249DA96 /* Pods-UIDeviceModelNames_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-UIDeviceModelNames_Example.release.xcconfig"; sourceTree = "<group>"; };
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
ADB6DAF6C24FFCB1D6ABFB52BA7C3F28 /* Pods-UIDeviceModelNames_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-UIDeviceModelNames_Example-frameworks.sh"; sourceTree = "<group>"; };
BEA71652B2095614791BDD130DE297B3 /* Pods-UIDeviceModelNames_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-UIDeviceModelNames_Example-dummy.m"; sourceTree = "<group>"; };
D05162A596A55C06D0E32B84531DE277 /* UIDeviceModelNames.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = UIDeviceModelNames.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
E7AFF5771F507C417F088E45DC47B383 /* UIDeviceModelNames-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "UIDeviceModelNames-Info.plist"; sourceTree = "<group>"; };
FAC1382F5B9F74CBFC2ECAAC5EB74CC6 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
186FE31BD6FCC9AACD8E6018F19123B4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3948AD1A4612548A994EFBEC318704F5 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
374E5596BDCC7F682C121326614165E7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
48FDAA15818E101D0C3A4DB0E2C2B314 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1AE69D892CE06A0A2BCF635B18A2428F /* Products */ = {
isa = PBXGroup;
children = (
37525FD9309536C428E10DE1161490E3 /* Pods_UIDeviceModelNames_Example.framework */,
25C283E3AA2B3D98237E4D7D3A1D9B02 /* UIDeviceModelNames.framework */,
);
name = Products;
sourceTree = "<group>";
};
5292E581A59CC9DA137A543A802BE718 /* Development Pods */ = {
isa = PBXGroup;
children = (
D760A61A46FD6E25FF69A8C56A8D07DB /* UIDeviceModelNames */,
);
name = "Development Pods";
sourceTree = "<group>";
};
70F37774A8370734E58AC8CDC8E6D99E /* Pods-UIDeviceModelNames_Example */ = {
isa = PBXGroup;
children = (
887183BD59C5C4CD1ECAC444DCFB6F1A /* Pods-UIDeviceModelNames_Example.modulemap */,
32386F3F275ABE22A0516B848F30510C /* Pods-UIDeviceModelNames_Example-acknowledgements.markdown */,
8F3FCE1132AC36F24F553829F5A8631D /* Pods-UIDeviceModelNames_Example-acknowledgements.plist */,
BEA71652B2095614791BDD130DE297B3 /* Pods-UIDeviceModelNames_Example-dummy.m */,
ADB6DAF6C24FFCB1D6ABFB52BA7C3F28 /* Pods-UIDeviceModelNames_Example-frameworks.sh */,
850AEBF1C8FF5535AB8141FABF92CADB /* Pods-UIDeviceModelNames_Example-Info.plist */,
67A0792FC2B9BC668AE7246392AB0728 /* Pods-UIDeviceModelNames_Example-umbrella.h */,
525E04C3182C2655F5BD3122A5373581 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */,
9A6F22E25CBB956F33C8BA781249DA96 /* Pods-UIDeviceModelNames_Example.release.xcconfig */,
);
name = "Pods-UIDeviceModelNames_Example";
path = "Target Support Files/Pods-UIDeviceModelNames_Example";
sourceTree = "<group>";
};
92E0F32703C56C661C96EE2373F9C473 /* Pod */ = {
isa = PBXGroup;
children = (
FAC1382F5B9F74CBFC2ECAAC5EB74CC6 /* LICENSE */,
81D1255655AA5EAA7C8E56A8C34B5591 /* README.md */,
D05162A596A55C06D0E32B84531DE277 /* UIDeviceModelNames.podspec */,
);
name = Pod;
sourceTree = "<group>";
};
C0834CEBB1379A84116EF29F93051C60 /* iOS */ = {
isa = PBXGroup;
children = (
3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
CF1408CF629C7361332E53B88F7BD30C = {
isa = PBXGroup;
children = (
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
5292E581A59CC9DA137A543A802BE718 /* Development Pods */,
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
1AE69D892CE06A0A2BCF635B18A2428F /* Products */,
FCD29B90EAC53CC2F36AA731CB4FFFD6 /* Targets Support Files */,
);
sourceTree = "<group>";
};
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {
isa = PBXGroup;
children = (
C0834CEBB1379A84116EF29F93051C60 /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
D760A61A46FD6E25FF69A8C56A8D07DB /* UIDeviceModelNames */ = {
isa = PBXGroup;
children = (
9009344D5CAA0AF4B8D8672D33AF3E6D /* UIDeviceModelNames.swift */,
92E0F32703C56C661C96EE2373F9C473 /* Pod */,
F5E6312E80EE1FB98F7D09686B446B4C /* Support Files */,
);
name = UIDeviceModelNames;
path = ../..;
sourceTree = "<group>";
};
F5E6312E80EE1FB98F7D09686B446B4C /* Support Files */ = {
isa = PBXGroup;
children = (
030E93F2F8AB1BC8B78EE444CBF3A529 /* UIDeviceModelNames.modulemap */,
116FBF73EE650C2828D45D6F132D88B5 /* UIDeviceModelNames.xcconfig */,
88C4524A1A78016C2B24A16757E08A53 /* UIDeviceModelNames-dummy.m */,
E7AFF5771F507C417F088E45DC47B383 /* UIDeviceModelNames-Info.plist */,
68BA6502687C4EFF3C239751A827DF66 /* UIDeviceModelNames-prefix.pch */,
0B8A12BE42A06F45AEFAB0B542EE3FB3 /* UIDeviceModelNames-umbrella.h */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/UIDeviceModelNames";
sourceTree = "<group>";
};
FCD29B90EAC53CC2F36AA731CB4FFFD6 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
70F37774A8370734E58AC8CDC8E6D99E /* Pods-UIDeviceModelNames_Example */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
1B446F6B53969DF20CE0FE57127304EF /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
E98E8F3743B8961218707EC9752904B0 /* UIDeviceModelNames-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
5DDAAE4287BC12D88820716066201F3F /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
5B384777D195BEB0DBDCF29F6CB1F12A /* Pods-UIDeviceModelNames_Example-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
10FED5D06F431137418F09349C8D22D6 /* Pods-UIDeviceModelNames_Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = 32FF404E88B3D690CBFA8F055ADBC655 /* Build configuration list for PBXNativeTarget "Pods-UIDeviceModelNames_Example" */;
buildPhases = (
5DDAAE4287BC12D88820716066201F3F /* Headers */,
F7DA7A15BF496DDAA90B8E4DFE0F22F8 /* Sources */,
374E5596BDCC7F682C121326614165E7 /* Frameworks */,
90FA43555AEDD6B6E9C10B7F4685ADF2 /* Resources */,
);
buildRules = (
);
dependencies = (
1FF2141B7A45F9882DC174DD43DEBAA1 /* PBXTargetDependency */,
);
name = "Pods-UIDeviceModelNames_Example";
productName = "Pods-UIDeviceModelNames_Example";
productReference = 37525FD9309536C428E10DE1161490E3 /* Pods_UIDeviceModelNames_Example.framework */;
productType = "com.apple.product-type.framework";
};
B7A6255C43F5E798197FC129C9F98419 /* UIDeviceModelNames */ = {
isa = PBXNativeTarget;
buildConfigurationList = 174F42E402845184957FE6AAFB890E37 /* Build configuration list for PBXNativeTarget "UIDeviceModelNames" */;
buildPhases = (
1B446F6B53969DF20CE0FE57127304EF /* Headers */,
5645C7D53DC7ABFC27D9FAB666200B22 /* Sources */,
186FE31BD6FCC9AACD8E6018F19123B4 /* Frameworks */,
459A3D94CF64FABE9FDE774C2BDE67D0 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = UIDeviceModelNames;
productName = UIDeviceModelNames;
productReference = 25C283E3AA2B3D98237E4D7D3A1D9B02 /* UIDeviceModelNames.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1100;
LastUpgradeCheck = 1100;
};
buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
productRefGroup = 1AE69D892CE06A0A2BCF635B18A2428F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
10FED5D06F431137418F09349C8D22D6 /* Pods-UIDeviceModelNames_Example */,
B7A6255C43F5E798197FC129C9F98419 /* UIDeviceModelNames */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
459A3D94CF64FABE9FDE774C2BDE67D0 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
90FA43555AEDD6B6E9C10B7F4685ADF2 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
5645C7D53DC7ABFC27D9FAB666200B22 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
DBEF749ED11D1F94BCC9091080E9A417 /* UIDeviceModelNames-dummy.m in Sources */,
6A1690482CE9234E52907F317AAB7C78 /* UIDeviceModelNames.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F7DA7A15BF496DDAA90B8E4DFE0F22F8 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
297880D901029A169EB76860394F5C75 /* Pods-UIDeviceModelNames_Example-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
1FF2141B7A45F9882DC174DD43DEBAA1 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = UIDeviceModelNames;
target = B7A6255C43F5E798197FC129C9F98419 /* UIDeviceModelNames */;
targetProxy = 112FE6492EF16ACE559E81237A8D88A2 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
34F4A42F0D9ABEC389E8ECB9EF232DAC /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 525E04C3182C2655F5BD3122A5373581 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
5BFBA63A14241B8342A0CCA0CD50BBDA /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 116FBF73EE650C2828D45D6F132D88B5 /* UIDeviceModelNames.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames-prefix.pch";
INFOPLIST_FILE = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames.modulemap";
PRODUCT_MODULE_NAME = UIDeviceModelNames;
PRODUCT_NAME = UIDeviceModelNames;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
72A4E7A21D08B5E981741BB3B9CABD50 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9A6F22E25CBB956F33C8BA781249DA96 /* Pods-UIDeviceModelNames_Example.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
B0087CB4594321EF41619F3181FE120E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
B8BCBD0110C2658BB5DAADB9B7D97B92 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
CCF6A2B616D548F51BA24E814B5C8408 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 116FBF73EE650C2828D45D6F132D88B5 /* UIDeviceModelNames.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames-prefix.pch";
INFOPLIST_FILE = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/UIDeviceModelNames/UIDeviceModelNames.modulemap";
PRODUCT_MODULE_NAME = UIDeviceModelNames;
PRODUCT_NAME = UIDeviceModelNames;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
174F42E402845184957FE6AAFB890E37 /* Build configuration list for PBXNativeTarget "UIDeviceModelNames" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5BFBA63A14241B8342A0CCA0CD50BBDA /* Debug */,
CCF6A2B616D548F51BA24E814B5C8408 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
32FF404E88B3D690CBFA8F055ADBC655 /* Build configuration list for PBXNativeTarget "Pods-UIDeviceModelNames_Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
34F4A42F0D9ABEC389E8ECB9EF232DAC /* Debug */,
72A4E7A21D08B5E981741BB3B9CABD50 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B8BCBD0110C2658BB5DAADB9B7D97B92 /* Debug */,
B0087CB4594321EF41619F3181FE120E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@ -0,0 +1,26 @@
# Acknowledgements
This application makes use of the following third party libraries:
## UIDeviceModelNames
Copyright (c) 2019 Jordan Koch <me@jordanko.ch>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2019 Jordan Koch &lt;me@jordanko.ch&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>UIDeviceModelNames</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>

View File

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_UIDeviceModelNames_Example : NSObject
@end
@implementation PodsDummy_Pods_UIDeviceModelNames_Example
@end

View File

@ -0,0 +1,171 @@
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
# Used as a return value for each invocation of `strip_invalid_archs` function.
STRIP_BINARY_RETVAL=0
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
elif [ -L "${binary}" ]; then
echo "Destination binary is symlinked..."
dirname="$(dirname "${binary}")"
binary="${dirname}/$(readlink "${binary}")"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
if [ -r "$source" ]; then
# Copy the dSYM into a the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .framework.dSYM "$source")"
binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
strip_invalid_archs "$binary"
fi
if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
fi
fi
}
# Copies the bcsymbolmap files of a vendored framework
install_bcsymbolmap() {
local bcsymbolmap_path="$1"
local destination="${BUILT_PRODUCTS_DIR}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identity
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
STRIP_BINARY_RETVAL=0
return
fi
stripped=""
for arch in $binary_archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary"
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
STRIP_BINARY_RETVAL=1
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/UIDeviceModelNames/UIDeviceModelNames.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/UIDeviceModelNames/UIDeviceModelNames.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi

View File

@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_UIDeviceModelNames_ExampleVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_UIDeviceModelNames_ExampleVersionString[];

View File

@ -0,0 +1,12 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/UIDeviceModelNames"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/UIDeviceModelNames/UIDeviceModelNames.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -framework "UIDeviceModelNames"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

View File

@ -0,0 +1,6 @@
framework module Pods_UIDeviceModelNames_Example {
umbrella header "Pods-UIDeviceModelNames_Example-umbrella.h"
export *
module * { export * }
}

View File

@ -0,0 +1,12 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/UIDeviceModelNames"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/UIDeviceModelNames/UIDeviceModelNames.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -framework "UIDeviceModelNames"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_UIDeviceModelNames : NSObject
@end
@implementation PodsDummy_UIDeviceModelNames
@end

View File

@ -0,0 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif

View File

@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double UIDeviceModelNamesVersionNumber;
FOUNDATION_EXPORT const unsigned char UIDeviceModelNamesVersionString[];

View File

@ -0,0 +1,6 @@
framework module UIDeviceModelNames {
umbrella header "UIDeviceModelNames-umbrella.h"
export *
module * { export * }
}

View File

@ -0,0 +1,10 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UIDeviceModelNames
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -1,50 +0,0 @@
// https://github.com/Quick/Quick
import Quick
import Nimble
import UIDeviceModelNames
class TableOfContentsSpec: QuickSpec {
override func spec() {
describe("these will fail") {
it("can do maths") {
expect(1) == 2
}
it("can read") {
expect("number") == "string"
}
it("will eventually fail") {
expect("time").toEventually( equal("done") )
}
context("these will pass") {
it("can do maths") {
expect(23) == 23
}
it("can read") {
expect("🐮") == "🐮"
}
it("will eventually pass") {
var time = "passing"
DispatchQueue.main.async {
time = "done"
}
waitUntil { done in
Thread.sleep(forTimeInterval: 0.5)
expect(time) == "done"
done()
}
}
}
}
}
}

View File

@ -7,31 +7,17 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
48BEB9BF2CD7B928EBFD0E3A /* Pods_UIDeviceModelNames_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0767F864B79550B13BB4C1FD /* Pods_UIDeviceModelNames_Tests.framework */; };
607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; };
607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; };
607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; };
607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; };
95D55ABAFB9FCF985626AF9E /* Pods_UIDeviceModelNames_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */; }; 95D55ABAFB9FCF985626AF9E /* Pods_UIDeviceModelNames_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 607FACC81AFB9204008FA782 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 607FACCF1AFB9204008FA782;
remoteInfo = UIDeviceModelNames;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
0767F864B79550B13BB4C1FD /* Pods_UIDeviceModelNames_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UIDeviceModelNames_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
1D6C1B606576042F7A6F45D5 /* Pods-UIDeviceModelNames_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Tests.release.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Tests/Pods-UIDeviceModelNames_Tests.release.xcconfig"; sourceTree = "<group>"; };
20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Example.debug.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.debug.xcconfig"; sourceTree = "<group>"; }; 20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Example.debug.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.debug.xcconfig"; sourceTree = "<group>"; };
3C5EE67D7E25C79D8E7050B5 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; name = README.md; path = ../README.md; sourceTree = "<group>"; }; 3C5EE67D7E25C79D8E7050B5 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIDeviceModelNames_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIDeviceModelNames_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@ -39,14 +25,10 @@
607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
607FACE51AFB9204008FA782 /* UIDeviceModelNames_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UIDeviceModelNames_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 6365A6F4D6102DD68832015A /* UIDeviceModelNames.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = UIDeviceModelNames.podspec; path = ../UIDeviceModelNames.podspec; sourceTree = "<group>"; };
607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = "<group>"; };
6365A6F4D6102DD68832015A /* UIDeviceModelNames.podspec */ = {isa = PBXFileReference; includeInIndex = 1; name = UIDeviceModelNames.podspec; path = ../UIDeviceModelNames.podspec; sourceTree = "<group>"; };
7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UIDeviceModelNames_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UIDeviceModelNames_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Example.release.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.release.xcconfig"; sourceTree = "<group>"; }; B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Example.release.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Example/Pods-UIDeviceModelNames_Example.release.xcconfig"; sourceTree = "<group>"; };
B2EB8B8FE3A601C25D6F8725 /* Pods-UIDeviceModelNames_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UIDeviceModelNames_Tests.debug.xcconfig"; path = "Target Support Files/Pods-UIDeviceModelNames_Tests/Pods-UIDeviceModelNames_Tests.debug.xcconfig"; sourceTree = "<group>"; }; E5E40BF6EAE811473BD7281B /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
E5E40BF6EAE811473BD7281B /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -58,14 +40,6 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
607FACE21AFB9204008FA782 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
48BEB9BF2CD7B928EBFD0E3A /* Pods_UIDeviceModelNames_Tests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
@ -73,7 +47,6 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */, 7B14B4A1ACD5965C68AC4243 /* Pods_UIDeviceModelNames_Example.framework */,
0767F864B79550B13BB4C1FD /* Pods_UIDeviceModelNames_Tests.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@ -83,7 +56,6 @@
children = ( children = (
607FACF51AFB993E008FA782 /* Podspec Metadata */, 607FACF51AFB993E008FA782 /* Podspec Metadata */,
607FACD21AFB9204008FA782 /* Example for UIDeviceModelNames */, 607FACD21AFB9204008FA782 /* Example for UIDeviceModelNames */,
607FACE81AFB9204008FA782 /* Tests */,
607FACD11AFB9204008FA782 /* Products */, 607FACD11AFB9204008FA782 /* Products */,
944B5B29B22897CD9A19AA69 /* Pods */, 944B5B29B22897CD9A19AA69 /* Pods */,
22DCDA310C6E16D40434C2D1 /* Frameworks */, 22DCDA310C6E16D40434C2D1 /* Frameworks */,
@ -94,7 +66,6 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */, 607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */,
607FACE51AFB9204008FA782 /* UIDeviceModelNames_Tests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@ -121,23 +92,6 @@
name = "Supporting Files"; name = "Supporting Files";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
607FACE81AFB9204008FA782 /* Tests */ = {
isa = PBXGroup;
children = (
607FACEB1AFB9204008FA782 /* Tests.swift */,
607FACE91AFB9204008FA782 /* Supporting Files */,
);
path = Tests;
sourceTree = "<group>";
};
607FACE91AFB9204008FA782 /* Supporting Files */ = {
isa = PBXGroup;
children = (
607FACEA1AFB9204008FA782 /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 607FACF51AFB993E008FA782 /* Podspec Metadata */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -153,10 +107,7 @@
children = ( children = (
20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */, 20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */,
B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */, B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */,
B2EB8B8FE3A601C25D6F8725 /* Pods-UIDeviceModelNames_Tests.debug.xcconfig */,
1D6C1B606576042F7A6F45D5 /* Pods-UIDeviceModelNames_Tests.release.xcconfig */,
); );
name = Pods;
path = Pods; path = Pods;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -182,26 +133,6 @@
productReference = 607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */; productReference = 607FACD01AFB9204008FA782 /* UIDeviceModelNames_Example.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
607FACE41AFB9204008FA782 /* UIDeviceModelNames_Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "UIDeviceModelNames_Tests" */;
buildPhases = (
555D0D37862D62A65E881963 /* [CP] Check Pods Manifest.lock */,
607FACE11AFB9204008FA782 /* Sources */,
607FACE21AFB9204008FA782 /* Frameworks */,
607FACE31AFB9204008FA782 /* Resources */,
1209F6A0D5C7E4BDD8515143 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
607FACE71AFB9204008FA782 /* PBXTargetDependency */,
);
name = UIDeviceModelNames_Tests;
productName = Tests;
productReference = 607FACE51AFB9204008FA782 /* UIDeviceModelNames_Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
@ -214,13 +145,9 @@
TargetAttributes = { TargetAttributes = {
607FACCF1AFB9204008FA782 = { 607FACCF1AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1; CreatedOnToolsVersion = 6.3.1;
DevelopmentTeam = 5JAGPKCDD7;
LastSwiftMigration = 0900; LastSwiftMigration = 0900;
}; };
607FACE41AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1;
LastSwiftMigration = 0900;
TestTargetID = 607FACCF1AFB9204008FA782;
};
}; };
}; };
buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "UIDeviceModelNames" */; buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "UIDeviceModelNames" */;
@ -228,6 +155,7 @@
developmentRegion = English; developmentRegion = English;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
English,
en, en,
Base, Base,
); );
@ -237,7 +165,6 @@
projectRoot = ""; projectRoot = "";
targets = ( targets = (
607FACCF1AFB9204008FA782 /* UIDeviceModelNames_Example */, 607FACCF1AFB9204008FA782 /* UIDeviceModelNames_Example */,
607FACE41AFB9204008FA782 /* UIDeviceModelNames_Tests */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
@ -253,62 +180,9 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
607FACE31AFB9204008FA782 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
1209F6A0D5C7E4BDD8515143 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-UIDeviceModelNames_Tests/Pods-UIDeviceModelNames_Tests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/FBSnapshotTestCase/FBSnapshotTestCase.framework",
"${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework",
"${BUILT_PRODUCTS_DIR}/Nimble-Snapshots/Nimble_Snapshots.framework",
"${BUILT_PRODUCTS_DIR}/Quick/Quick.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSnapshotTestCase.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble_Snapshots.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-UIDeviceModelNames_Tests/Pods-UIDeviceModelNames_Tests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
555D0D37862D62A65E881963 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-UIDeviceModelNames_Tests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
79040CFDD0CF220E409A3766 /* [CP] Embed Pods Frameworks */ = { 79040CFDD0CF220E409A3766 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -361,24 +235,8 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
607FACE11AFB9204008FA782 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
607FACEC1AFB9204008FA782 /* Tests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
607FACE71AFB9204008FA782 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 607FACCF1AFB9204008FA782 /* UIDeviceModelNames_Example */;
targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */ /* Begin PBXVariantGroup section */
607FACD91AFB9204008FA782 /* Main.storyboard */ = { 607FACD91AFB9204008FA782 /* Main.storyboard */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
@ -503,6 +361,7 @@
baseConfigurationReference = 20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */; baseConfigurationReference = 20739C56DB00DF7252E4C013 /* Pods-UIDeviceModelNames_Example.debug.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = 5JAGPKCDD7;
INFOPLIST_FILE = UIDeviceModelNames/Info.plist; INFOPLIST_FILE = UIDeviceModelNames/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MODULE_NAME = ExampleApp; MODULE_NAME = ExampleApp;
@ -518,6 +377,7 @@
baseConfigurationReference = B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */; baseConfigurationReference = B2CB14F32FA38A6100A76038 /* Pods-UIDeviceModelNames_Example.release.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = 5JAGPKCDD7;
INFOPLIST_FILE = UIDeviceModelNames/Info.plist; INFOPLIST_FILE = UIDeviceModelNames/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MODULE_NAME = ExampleApp; MODULE_NAME = ExampleApp;
@ -528,46 +388,6 @@
}; };
name = Release; name = Release;
}; };
607FACF31AFB9204008FA782 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B2EB8B8FE3A601C25D6F8725 /* Pods-UIDeviceModelNames_Tests.debug.xcconfig */;
buildSettings = {
FRAMEWORK_SEARCH_PATHS = (
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
"$(inherited)",
);
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UIDeviceModelNames_Example.app/UIDeviceModelNames_Example";
};
name = Debug;
};
607FACF41AFB9204008FA782 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1D6C1B606576042F7A6F45D5 /* Pods-UIDeviceModelNames_Tests.release.xcconfig */;
buildSettings = {
FRAMEWORK_SEARCH_PATHS = (
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
"$(inherited)",
);
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UIDeviceModelNames_Example.app/UIDeviceModelNames_Example";
};
name = Release;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
@ -589,15 +409,6 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "UIDeviceModelNames_Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
607FACF31AFB9204008FA782 /* Debug */,
607FACF41AFB9204008FA782 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 607FACC81AFB9204008FA782 /* Project object */; rootObject = 607FACC81AFB9204008FA782 /* Project object */;

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:UIDeviceModelNames.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -7,12 +7,15 @@
// //
import UIKit import UIKit
import UIDeviceModelNames
class ViewController: UIViewController { class ViewController: UIViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib. // Do any additional setup after loading the view, typically from a nib.
print(UIDeviceModelNames.modelName)
} }
override func didReceiveMemoryWarning() { override func didReceiveMemoryWarning() {

View File

@ -0,0 +1,97 @@
//
// UIDeviceModelNames.swift
// UIDeviceModelNames
//
// Created by Jordan Koch on 11/20/19.
//
import UIKit
import Foundation
public class UIDeviceModelNames {
public static let modelUglyName: String = {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8, value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
return identifier
}()
public static let modelName: String = {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8, value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
func mapToDevice(identifier: String) -> String { // swiftlint:disable:this cyclomatic_complexity
#if os(iOS)
switch identifier {
case "iPod5,1": return "iPod Touch 5"
case "iPod7,1": return "iPod Touch 6"
case "iPhone3,1", "iPhone3,2", "iPhone3,3": return "iPhone 4"
case "iPhone4,1": return "iPhone 4s"
case "iPhone5,1", "iPhone5,2": return "iPhone 5"
case "iPhone5,3", "iPhone5,4": return "iPhone 5c"
case "iPhone6,1", "iPhone6,2": return "iPhone 5s"
case "iPhone7,2": return "iPhone 6"
case "iPhone7,1": return "iPhone 6 Plus"
case "iPhone8,1": return "iPhone 6s"
case "iPhone8,2": return "iPhone 6s Plus"
case "iPhone9,1", "iPhone9,3": return "iPhone 7"
case "iPhone9,2", "iPhone9,4": return "iPhone 7 Plus"
case "iPhone8,4": return "iPhone SE"
case "iPhone10,1", "iPhone10,4": return "iPhone 8"
case "iPhone10,2", "iPhone10,5": return "iPhone 8 Plus"
case "iPhone10,3", "iPhone10,6": return "iPhone X"
case "iPhone11,2": return "iPhone XS"
case "iPhone11,4", "iPhone11,6": return "iPhone XS Max"
case "iPhone11,8": return "iPhone XR"
case "iPhone12,1": return "iPhone 11"
case "iPhone12,3": return "iPhone 11 Pro"
case "iPhone12,5": return "iPhone 11 Pro Max"
case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4":return "iPad 2"
case "iPad3,1", "iPad3,2", "iPad3,3": return "iPad 3"
case "iPad3,4", "iPad3,5", "iPad3,6": return "iPad 4"
case "iPad4,1", "iPad4,2", "iPad4,3": return "iPad Air"
case "iPad5,3", "iPad5,4": return "iPad Air 2"
case "iPad11,3", "iPad11,4": return "iPad Air (3rd generation)"
case "iPad6,11", "iPad6,12": return "iPad 5"
case "iPad7,5", "iPad7,6": return "iPad 6"
case "iPad7,11", "iPad7,12": return "iPad 7"
case "iPad2,5", "iPad2,6", "iPad2,7": return "iPad mini"
case "iPad4,4", "iPad4,5", "iPad4,6": return "iPad mini 2"
case "iPad4,7", "iPad4,8", "iPad4,9": return "iPad mini 3"
case "iPad5,1", "iPad5,2": return "iPad mini 4"
case "iPad11,1", "iPad11,2": return "iPad mini (5th generation)"
case "iPad6,3", "iPad6,4": return "iPad Pro (9.7-inch)"
case "iPad6,7", "iPad6,8": return "iPad Pro (12.9-inch)"
case "iPad7,1", "iPad7,2": return "iPad Pro (12.9-inch) (2nd generation)"
case "iPad7,3", "iPad7,4": return "iPad Pro (10.5-inch)"
case "iPad8,1", "iPad8,2", "iPad8,3", "iPad8,4":return "iPad Pro (11-inch)"
case "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8":return "iPad Pro (12.9-inch) (3rd generation)"
case "AppleTV5,3": return "Apple TV"
case "AppleTV6,2": return "Apple TV 4K"
case "AudioAccessory1,1": return "HomePod"
case "i386", "x86_64": return "Simulator \(mapToDevice(identifier: ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] ?? "iOS"))"
default: return identifier
}
#elseif os(tvOS)
switch identifier {
case "AppleTV5,3": return "Apple TV 4"
case "AppleTV6,2": return "Apple TV 4K"
case "i386", "x86_64": return "Simulator \(mapToDevice(identifier: ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] ?? "tvOS"))"
default: return identifier
}
#endif
}
return mapToDevice(identifier: identifier)
}()
}