Skip to content

Commit 7bfb1b0

Browse files
Merge pull request #4 from sebastianvarela/task/update
Update device list and improve DeviceModel
2 parents 9bfa9e1 + 4532dd7 commit 7bfb1b0

10 files changed

+645
-385
lines changed

DeviceIdentificator.xcodeproj/project.pbxproj

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@
88

99
/* Begin PBXBuildFile section */
1010
E20BA609213924E6005BA13B /* DeviceModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA608213924E6005BA13B /* DeviceModel.swift */; };
11-
E20BA60B21393D5C005BA13B /* DeviceIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60A21393D5C005BA13B /* DeviceIdentifier.swift */; };
1211
E20BA60D2139406F005BA13B /* DeviceModel+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60C2139406F005BA13B /* DeviceModel+Name.swift */; };
13-
E20BA61021394202005BA13B /* DeviceIdentifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60E213941E1005BA13B /* DeviceIdentifierTests.swift */; };
1412
E20BA612213949D1005BA13B /* DeviceModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA611213949D1005BA13B /* DeviceModelTests.swift */; };
1513
E20BA61421395AA8005BA13B /* DeviceModel+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA61321395AA8005BA13B /* DeviceModel+Helpers.swift */; };
1614
E20BA62B2139DD8D005BA13B /* DeviceIdentificator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E20BA61A2139DD42005BA13B /* DeviceIdentificator.framework */; };
1715
E20BA6312139DDF9005BA13B /* DeviceIdentificator.h in Headers */ = {isa = PBXBuildFile; fileRef = E2A364F9200D104900668DF9 /* DeviceIdentificator.h */; settings = {ATTRIBUTES = (Public, ); }; };
1816
E20BA6322139DE33005BA13B /* UIDeviceExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2566522212614270061CCF7 /* UIDeviceExtensionsTests.swift */; };
1917
E20BA6332139DE36005BA13B /* DeviceModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA611213949D1005BA13B /* DeviceModelTests.swift */; };
20-
E20BA6342139DE39005BA13B /* DeviceIdentifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60E213941E1005BA13B /* DeviceIdentifierTests.swift */; };
2118
E20BA6352139DE4C005BA13B /* UIDeviceExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A36510200D10DA00668DF9 /* UIDeviceExtensions.swift */; };
2219
E20BA6362139DE4C005BA13B /* DeviceModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA608213924E6005BA13B /* DeviceModel.swift */; };
2320
E20BA6372139DE4C005BA13B /* DeviceModel+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60C2139406F005BA13B /* DeviceModel+Name.swift */; };
2421
E20BA6382139DE4C005BA13B /* DeviceModel+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA61321395AA8005BA13B /* DeviceModel+Helpers.swift */; };
25-
E20BA6392139DE4C005BA13B /* DeviceIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20BA60A21393D5C005BA13B /* DeviceIdentifier.swift */; };
2622
E2566523212614270061CCF7 /* UIDeviceExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2566522212614270061CCF7 /* UIDeviceExtensionsTests.swift */; };
2723
E2566525212614270061CCF7 /* DeviceIdentificator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A364F6200D104900668DF9 /* DeviceIdentificator.framework */; };
2824
E2A36507200D104900668DF9 /* DeviceIdentificator.h in Headers */ = {isa = PBXBuildFile; fileRef = E2A364F9200D104900668DF9 /* DeviceIdentificator.h */; settings = {ATTRIBUTES = (Public, ); }; };
2925
E2A36511200D10DA00668DF9 /* UIDeviceExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A36510200D10DA00668DF9 /* UIDeviceExtensions.swift */; };
26+
F2322B4329A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2322B4229A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift */; };
27+
F2322B4529A3F65A00EB904B /* DeviceModel+CaseIterable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2322B4429A3F65A00EB904B /* DeviceModel+CaseIterable.swift */; };
28+
F2322B4629A3F65A00EB904B /* DeviceModel+CaseIterable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2322B4429A3F65A00EB904B /* DeviceModel+CaseIterable.swift */; };
29+
F2322B4729A3F68400EB904B /* DeviceModel+RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2322B4229A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift */; };
3030
/* End PBXBuildFile section */
3131

3232
/* Begin PBXContainerItemProxy section */
@@ -48,9 +48,7 @@
4848

4949
/* Begin PBXFileReference section */
5050
E20BA608213924E6005BA13B /* DeviceModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceModel.swift; sourceTree = "<group>"; };
51-
E20BA60A21393D5C005BA13B /* DeviceIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceIdentifier.swift; sourceTree = "<group>"; };
5251
E20BA60C2139406F005BA13B /* DeviceModel+Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceModel+Name.swift"; sourceTree = "<group>"; };
53-
E20BA60E213941E1005BA13B /* DeviceIdentifierTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceIdentifierTests.swift; sourceTree = "<group>"; };
5452
E20BA611213949D1005BA13B /* DeviceModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceModelTests.swift; sourceTree = "<group>"; };
5553
E20BA61321395AA8005BA13B /* DeviceModel+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceModel+Helpers.swift"; sourceTree = "<group>"; };
5654
E20BA61A2139DD42005BA13B /* DeviceIdentificator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DeviceIdentificator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -62,6 +60,8 @@
6260
E2A364F9200D104900668DF9 /* DeviceIdentificator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceIdentificator.h; sourceTree = "<group>"; };
6361
E2A364FA200D104900668DF9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
6462
E2A36510200D10DA00668DF9 /* UIDeviceExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIDeviceExtensions.swift; sourceTree = "<group>"; };
63+
F2322B4229A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceModel+RawRepresentable.swift"; sourceTree = "<group>"; };
64+
F2322B4429A3F65A00EB904B /* DeviceModel+CaseIterable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceModel+CaseIterable.swift"; sourceTree = "<group>"; };
6565
/* End PBXFileReference section */
6666

6767
/* Begin PBXFrameworksBuildPhase section */
@@ -103,7 +103,6 @@
103103
children = (
104104
E2566522212614270061CCF7 /* UIDeviceExtensionsTests.swift */,
105105
E20BA611213949D1005BA13B /* DeviceModelTests.swift */,
106-
E20BA60E213941E1005BA13B /* DeviceIdentifierTests.swift */,
107106
E2566524212614270061CCF7 /* Info.plist */,
108107
);
109108
path = Tests;
@@ -134,9 +133,10 @@
134133
children = (
135134
E2A36510200D10DA00668DF9 /* UIDeviceExtensions.swift */,
136135
E20BA608213924E6005BA13B /* DeviceModel.swift */,
136+
F2322B4229A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift */,
137+
F2322B4429A3F65A00EB904B /* DeviceModel+CaseIterable.swift */,
137138
E20BA60C2139406F005BA13B /* DeviceModel+Name.swift */,
138139
E20BA61321395AA8005BA13B /* DeviceModel+Helpers.swift */,
139-
E20BA60A21393D5C005BA13B /* DeviceIdentifier.swift */,
140140
E2A364F9200D104900668DF9 /* DeviceIdentificator.h */,
141141
E2A364FA200D104900668DF9 /* Info.plist */,
142142
);
@@ -357,10 +357,11 @@
357357
isa = PBXSourcesBuildPhase;
358358
buildActionMask = 2147483647;
359359
files = (
360-
E20BA6392139DE4C005BA13B /* DeviceIdentifier.swift in Sources */,
361360
E20BA6382139DE4C005BA13B /* DeviceModel+Helpers.swift in Sources */,
362361
E20BA6352139DE4C005BA13B /* UIDeviceExtensions.swift in Sources */,
363362
E20BA6362139DE4C005BA13B /* DeviceModel.swift in Sources */,
363+
F2322B4729A3F68400EB904B /* DeviceModel+RawRepresentable.swift in Sources */,
364+
F2322B4629A3F65A00EB904B /* DeviceModel+CaseIterable.swift in Sources */,
364365
E20BA6372139DE4C005BA13B /* DeviceModel+Name.swift in Sources */,
365366
);
366367
runOnlyForDeploymentPostprocessing = 0;
@@ -370,7 +371,6 @@
370371
buildActionMask = 2147483647;
371372
files = (
372373
E20BA6322139DE33005BA13B /* UIDeviceExtensionsTests.swift in Sources */,
373-
E20BA6342139DE39005BA13B /* DeviceIdentifierTests.swift in Sources */,
374374
E20BA6332139DE36005BA13B /* DeviceModelTests.swift in Sources */,
375375
);
376376
runOnlyForDeploymentPostprocessing = 0;
@@ -379,7 +379,6 @@
379379
isa = PBXSourcesBuildPhase;
380380
buildActionMask = 2147483647;
381381
files = (
382-
E20BA61021394202005BA13B /* DeviceIdentifierTests.swift in Sources */,
383382
E20BA612213949D1005BA13B /* DeviceModelTests.swift in Sources */,
384383
E2566523212614270061CCF7 /* UIDeviceExtensionsTests.swift in Sources */,
385384
);
@@ -389,9 +388,10 @@
389388
isa = PBXSourcesBuildPhase;
390389
buildActionMask = 2147483647;
391390
files = (
392-
E20BA60B21393D5C005BA13B /* DeviceIdentifier.swift in Sources */,
393391
E2A36511200D10DA00668DF9 /* UIDeviceExtensions.swift in Sources */,
394392
E20BA61421395AA8005BA13B /* DeviceModel+Helpers.swift in Sources */,
393+
F2322B4329A3BEEA00EB904B /* DeviceModel+RawRepresentable.swift in Sources */,
394+
F2322B4529A3F65A00EB904B /* DeviceModel+CaseIterable.swift in Sources */,
395395
E20BA60D2139406F005BA13B /* DeviceModel+Name.swift in Sources */,
396396
E20BA609213924E6005BA13B /* DeviceModel.swift in Sources */,
397397
);
@@ -652,6 +652,7 @@
652652
DYLIB_INSTALL_NAME_BASE = "@rpath";
653653
INFOPLIST_FILE = Source/Info.plist;
654654
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
655+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
655656
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
656657
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
657658
SKIP_INSTALL = YES;
@@ -672,6 +673,7 @@
672673
DYLIB_INSTALL_NAME_BASE = "@rpath";
673674
INFOPLIST_FILE = Source/Info.plist;
674675
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
676+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
675677
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
676678
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
677679
SKIP_INSTALL = YES;

Source/DeviceIdentifier.swift

Lines changed: 0 additions & 93 deletions
This file was deleted.

Source/DeviceModel+CaseIterable.swift

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
import Foundation
2+
3+
public extension DeviceModel {
4+
static var allCases: [DeviceModel] {
5+
[
6+
// iPhones
7+
.iPhone1G,
8+
.iPhone3G,
9+
.iPhone3GS,
10+
.iPhone4(.gsm),
11+
.iPhone4(.gsmRevA),
12+
.iPhone4(.cdma),
13+
.iPhone4S,
14+
.iPhone5(.gsm),
15+
.iPhone5(.global),
16+
.iPhone5C(.gsm),
17+
.iPhone5C(.global),
18+
.iPhone5S(.gsm),
19+
.iPhone5S(.global),
20+
.iPhone6,
21+
.iPhone6Plus,
22+
.iPhone6S,
23+
.iPhone6SPlus,
24+
.iPhoneSE,
25+
.iPhone7(.global),
26+
.iPhone7Plus(.global),
27+
.iPhone7(.gsm),
28+
.iPhone7Plus(.gsm),
29+
.iPhone8(.global),
30+
.iPhone8(.gsm),
31+
.iPhone8Plus(.global),
32+
.iPhone8Plus(.gsm),
33+
.iPhoneX(.global),
34+
.iPhoneX(.gsm),
35+
.iPhoneXR,
36+
.iPhoneXS,
37+
.iPhoneXSMax,
38+
.iPhone11,
39+
.iPhone11Pro,
40+
.iPhone11ProMax,
41+
.iPhoneSE2G,
42+
.iPhone12Mini,
43+
.iPhone12,
44+
.iPhone12Pro,
45+
.iPhone12ProMax,
46+
.iPhone13Pro,
47+
.iPhone13ProMax,
48+
.iPhone13Mini,
49+
.iPhone13,
50+
.iPhoneSE3G,
51+
.iPhone14,
52+
.iPhone14Plus,
53+
.iPhone14Pro,
54+
.iPhone14ProMax,
55+
56+
// iPods
57+
.iPodTouch1G,
58+
.iPodTouch2G,
59+
.iPodTouch3G,
60+
.iPodTouch4G,
61+
.iPodTouch5G,
62+
.iPodTouch6G,
63+
.iPodTouch7G,
64+
65+
// iPads
66+
.iPad1G(.wifi),
67+
.iPad1G(.celullar),
68+
.iPad2G(.wifi),
69+
.iPad2G(.gsm),
70+
.iPad2G(.cdma),
71+
.iPad2G(.newRevision),
72+
.iPad3G(.wifi),
73+
.iPad3G(.cdma),
74+
.iPad3G(.gsm),
75+
.iPad4G(.wifi),
76+
.iPad4G(.gsm),
77+
.iPad4G(.cdma),
78+
.iPad5G(.wifi),
79+
.iPad5G(.celullar),
80+
.iPad6G(.wifi),
81+
.iPad6G(.celullar),
82+
.iPad7G(.wifi),
83+
.iPad7G(.celullar),
84+
.iPad8G(.wifi),
85+
.iPad8G(.celullar),
86+
.iPad9G(.wifi),
87+
.iPad9G(.celullar),
88+
.iPad10G(.wifi),
89+
.iPad10G(.celullar),
90+
91+
// iPad Minis
92+
.iPadMini1(.wifi),
93+
.iPadMini1(.gsm),
94+
.iPadMini1(.cdma),
95+
.iPadMini2(.wifi),
96+
.iPadMini2(.gsmCdma),
97+
.iPadMini2(.china),
98+
.iPadMini3(.wifi),
99+
.iPadMini3(.gsmCdma),
100+
.iPadMini3(.china),
101+
.iPadMini4(.wifi),
102+
.iPadMini4(.celullar),
103+
.iPadMini5(.wifi),
104+
.iPadMini5(.celullar),
105+
.iPadMini6(.wifi),
106+
.iPadMini6(.celullar),
107+
108+
// iPad Air
109+
.iPadAir1G(.wifi),
110+
.iPadAir1G(.gsmCdma),
111+
.iPadAir1G(.china),
112+
.iPadAir2G(.wifi),
113+
.iPadAir2G(.celullar),
114+
.iPadAir3G(.wifi),
115+
.iPadAir3G(.celullar),
116+
.iPadAir4G(.wifi),
117+
.iPadAir4G(.celullar),
118+
.iPadAir5G(.wifi),
119+
.iPadAir5G(.celullar),
120+
121+
// iPad Pro
122+
.iPadPro9d7inch1G(.wifi),
123+
.iPadPro9d7inch1G(.celullar),
124+
.iPadPro12d9inch1G(.wifi),
125+
.iPadPro12d9inch1G(.celullar),
126+
.iPadPro10d5inch1G(.wifi),
127+
.iPadPro10d5inch1G(.celullar),
128+
.iPadPro12d9inch2G(.wifi),
129+
.iPadPro12d9inch2G(.celullar),
130+
.iPadPro11inch(.wifi),
131+
.iPadPro11inch(.wifiTera),
132+
.iPadPro11inch(.celullar),
133+
.iPadPro11inch(.celullarTera),
134+
.iPadPro11inch2G(.wifi),
135+
.iPadPro11inch2G(.celullar),
136+
.iPadPro12d9inch3G(.wifi),
137+
.iPadPro12d9inch3G(.wifiTera),
138+
.iPadPro12d9inch3G(.celullar),
139+
.iPadPro12d9inch3G(.celullarTera),
140+
.iPadPro12d9inch4G(.wifi),
141+
.iPadPro12d9inch4G(.celullar),
142+
.iPadPro11inch3G(.wifi),
143+
.iPadPro11inch3G(.wifiTera),
144+
.iPadPro11inch3G(.celullar),
145+
.iPadPro11inch3G(.celullarTera),
146+
.iPadPro12d9inch5G(.wifi),
147+
.iPadPro12d9inch5G(.wifiTera),
148+
.iPadPro12d9inch5G(.celullar),
149+
.iPadPro12d9inch5G(.celullarTera),
150+
.iPadPro11inch4G(.wifi),
151+
.iPadPro11inch4G(.celullar),
152+
.iPadPro12d9inch6G(.wifi),
153+
.iPadPro12d9inch6G(.celullar),
154+
155+
// Apple TV
156+
.appleTV4G,
157+
.appleTV4K,
158+
.appleTV4K2G,
159+
.appleTV4K3G,
160+
]
161+
}
162+
}

0 commit comments

Comments
 (0)