Skip to content

Commit e465fb0

Browse files
committed
Add more Apple Silicon macs and some missing iPads
1 parent 2f2b092 commit e465fb0

File tree

6 files changed

+141
-5
lines changed

6 files changed

+141
-5
lines changed

Sources/DeviceIdentificator/Models/IPadModel+Name.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ public extension DeviceModel.IPadModel {
9292
case .pro4_11inchCellular: return "iPad Pro 4G 11\" (Celullar)"
9393
case .pro6_12d9inchWifi: return "iPad Pro 6G 12.9\" (Wifi)"
9494
case .pro6_12d9inchCellular: return "iPad Pro 6G 12.9\" (Celullar)"
95+
case .pro7_11inchWifi: return "iPad Pro 7G 11\" (Wifi)"
96+
case .pro7_11inchCellular: return "iPad Pro 7G 11\" (Cellular)"
97+
case .pro7_13inchWifi: return "iPad Pro 7G 13\" (Wifi)"
98+
case .pro7_13inchCellular: return "iPad Pro 7G 13\" (Cellular)"
9599
}
96100
}
97101
}

Sources/DeviceIdentificator/Models/IPadModel.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,9 @@ public extension DeviceModel {
9191
case pro4_11inchCellular = "iPad14,4"
9292
case pro6_12d9inchWifi = "iPad14,5"
9393
case pro6_12d9inchCellular = "iPad14,6"
94+
case pro7_11inchWifi = "iPad16,3"
95+
case pro7_11inchCellular = "iPad16,4"
96+
case pro7_13inchWifi = "iPad16,5"
97+
case pro7_13inchCellular = "iPad16,6"
9498
}
9599
}
Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,51 @@
11
import Foundation
22

3-
public extension DeviceModel.MacModel {
4-
var name: String {
3+
extension DeviceModel.MacModel {
4+
public var name: String {
55
switch self {
6-
case .miniM1:
7-
return "Mini M1"
6+
case .iMac2PortsM1: return "iMac (M1 2 ports)"
7+
case .iMac4PortsM1: return "iMac (M1 4 ports)"
8+
case .iMac2PortsM3: return "iMac (M3 2 ports)"
9+
case .iMac4PortsM3: return "iMac (M3 4 ports)"
10+
case .iMac2PortsM4: return "iMac (M3 2 ports)"
11+
case .iMac4PortsM4: return "iMac (M3 2 ports)"
12+
case .macBookAirM1: return "MacBook Air (M1)"
13+
case .macBookAir13InchM2: return "MacBook Air 13\" (M2)"
14+
case .macBookAir15InchM2: return "MacBook Air 15\" (M2)"
15+
case .macBookAir13InchM3: return "MacBook Air 13\" (M3)"
16+
case .macBookAir15InchM3: return "MacBook Air 15\" (M3)"
17+
case .macBookProM1: return "MacBook Pro (M1)"
18+
case .macBookPro14InchM1Pro: return "MacBook Pro 14\" (M1 Pro)"
19+
case .macBookPro14InchM1Max: return "MacBook Pro 14\" (M1 Max)"
20+
case .macBookPro16InchM1Pro: return "MacBook Pro 16\" (M1 Pro)"
21+
case .macBookPro16InchM1Max: return "MacBook Pro 16\" (M1 Max)"
22+
case .macBookProM2: return "MacBook Pro (M2)"
23+
case .macBookPro14InchM2Pro: return "MacBook Pro 14\" (M2 Pro)"
24+
case .macBookPro14InchM2Max: return "MacBook Pro 14\" (M2 Max)"
25+
case .macBookPro16InchM2Pro: return "MacBook Pro 16\" (M2 Pro)"
26+
case .macBookPro16InchM2Max: return "MacBook Pro 16\" (M2 Max)"
27+
case .macBookProM3: return "MacBook Pro (M3)"
28+
case .macBookPro14InchM3Pro: return "MacBook Pro 14\" (M3 Pro)"
29+
case .macBookPro14InchM3Max14Core: return "MacBook Pro 14\" (M3 Max 14-core)"
30+
case .macBookPro14InchM3Max16Core: return "MacBook Pro 14\" (M3 Max 16-core)"
31+
case .macBookPro16InchM3Pro: return "MacBook Pro 16\" (M3 Pro)"
32+
case .macBookPro16InchM3Max14Core: return "MacBook Pro 16\" (M3 Max 14-core)"
33+
case .macBookPro16InchM3Max16Core: return "MacBook Pro 16\" (M3 Max 16-core)"
34+
case .macBookProM4: return "MacBook Pro (M4)"
35+
case .macBookPro14InchM4Pro: return "MacBook Pro 14\" (M4 Pro)"
36+
case .macBookPro14InchM4Max: return "MacBook Pro 14\" (M4 Max)"
37+
case .macBookPro16InchM4Pro: return "MacBook Pro 16\" (M4 Pro)"
38+
case .macBookPro16InchM4Max: return "MacBook Pro 16\" (M4 Max)"
39+
case .macPro: return "Mac Pro (M2 Ultra)"
40+
case .macStudioM1Max: return "Mac Studio (M1 Max)"
41+
case .macStudioM1Ultra: return "Mac Studio (M1 Ultra)"
42+
case .macStudioM2Max: return "Mac Studio (M2 Max)"
43+
case .macStudioM2Ultra: return "Mac Studio (M2 Ultra)"
44+
case .miniM1: return "Mac mini (M1)"
45+
case .miniM2: return "Mac mini (M2)"
46+
case .miniM2Pro: return "Mac mini (M2 Pro)"
47+
case .miniM4: return "Mac mini (M4)"
48+
case .miniM4Pro: return "Mac mini (M4 Pro)"
849
}
950
}
1051
}

Sources/DeviceIdentificator/Models/MacModel+Processor.swift

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,49 @@ import Foundation
33
public extension DeviceModel.MacModel {
44
var processor: DeviceModel.Processor {
55
switch self {
6-
case .miniM1: return .appleM1
6+
case .iMac2PortsM1: return .appleM1
7+
case .iMac4PortsM1: return .appleM1
8+
case .iMac2PortsM3: return .appleM3
9+
case .iMac4PortsM3: return .appleM3
10+
case .iMac2PortsM4: return .appleM4
11+
case .iMac4PortsM4: return .appleM4
12+
case .macBookAirM1: return .appleM1
13+
case .macBookAir13InchM2: return .appleM2
14+
case .macBookAir15InchM2: return .appleM2
15+
case .macBookAir13InchM3: return .appleM3
16+
case .macBookAir15InchM3: return .appleM3
17+
case .macBookProM1: return .appleM1
18+
case .macBookPro14InchM1Pro: return .appleM1Pro
19+
case .macBookPro14InchM1Max: return .appleM1Max
20+
case .macBookPro16InchM1Pro: return .appleM1Pro
21+
case .macBookPro16InchM1Max: return .appleM1Max
22+
case .macBookProM2: return .appleM2
23+
case .macBookPro14InchM2Pro: return .appleM2Pro
24+
case .macBookPro14InchM2Max: return .appleM2Max
25+
case .macBookPro16InchM2Pro: return .appleM2Pro
26+
case .macBookPro16InchM2Max: return .appleM2Max
27+
case .macBookProM3: return .appleM3
28+
case .macBookPro14InchM3Pro: return .appleM3Pro
29+
case .macBookPro14InchM3Max14Core: return .appleM3Max
30+
case .macBookPro14InchM3Max16Core: return .appleM3Max
31+
case .macBookPro16InchM3Pro: return .appleM3Pro
32+
case .macBookPro16InchM3Max14Core: return .appleM3Max
33+
case .macBookPro16InchM3Max16Core: return .appleM3Max
34+
case .macBookProM4: return .appleM4
35+
case .macBookPro14InchM4Pro: return .appleM4Pro
36+
case .macBookPro14InchM4Max: return .appleM4Max
37+
case .macBookPro16InchM4Pro: return .appleM4Pro
38+
case .macBookPro16InchM4Max: return .appleM4Max
39+
case .macPro: return .appleM2Ultra
40+
case .macStudioM1Max: return .appleM1Max
41+
case .macStudioM1Ultra: return .appleM1Ultra
42+
case .macStudioM2Max: return .appleM2Max
43+
case .macStudioM2Ultra: return .appleM2Ultra
44+
case .miniM1: return .appleM1
45+
case .miniM2: return .appleM2
46+
case .miniM2Pro: return .appleM2Pro
47+
case .miniM4: return .appleM4
48+
case .miniM4Pro: return .appleM4Pro
749
}
850
}
951
}

Sources/DeviceIdentificator/Models/MacModel.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,49 @@ import Foundation
22

33
public extension DeviceModel {
44
enum MacModel: String, Equatable, CaseIterable {
5+
case iMac2PortsM1 = "iMac21,2"
6+
case iMac4PortsM1 = "iMac21,1"
7+
case iMac2PortsM3 = "Mac15,4"
8+
case iMac4PortsM3 = "Mac15,5"
9+
case iMac2PortsM4 = "Mac16,2"
10+
case iMac4PortsM4 = "Mac16,3"
11+
case macBookAirM1 = "MacBookAir10,1"
12+
case macBookAir13InchM2 = "Mac14,2"
13+
case macBookAir15InchM2 = "Mac14,15"
14+
case macBookAir13InchM3 = "Mac15,12"
15+
case macBookAir15InchM3 = "Mac15,13"
16+
case macBookProM1 = "MacBookPro17,1"
17+
case macBookPro14InchM1Pro = "MacBookPro18,3"
18+
case macBookPro14InchM1Max = "MacBookPro18,4"
19+
case macBookPro16InchM1Pro = "MacBookPro18,1"
20+
case macBookPro16InchM1Max = "MacBookPro18,2"
21+
case macBookProM2 = "Mac14,7"
22+
case macBookPro14InchM2Pro = "Mac14,9"
23+
case macBookPro14InchM2Max = "Mac14,5"
24+
case macBookPro16InchM2Pro = "Mac14,10"
25+
case macBookPro16InchM2Max = "Mac14,6"
26+
case macBookProM3 = "Mac15,3"
27+
case macBookPro14InchM3Pro = "Mac15,6"
28+
case macBookPro14InchM3Max14Core = "Mac15,10"
29+
case macBookPro14InchM3Max16Core = "Mac15,8"
30+
case macBookPro16InchM3Pro = "Mac15,7"
31+
case macBookPro16InchM3Max14Core = "Mac15,11"
32+
case macBookPro16InchM3Max16Core = "Mac15,9"
33+
case macBookProM4 = "Mac16,1"
34+
case macBookPro14InchM4Pro = "Mac16,8"
35+
case macBookPro14InchM4Max = "Mac16,6"
36+
case macBookPro16InchM4Pro = "Mac16,7"
37+
case macBookPro16InchM4Max = "Mac16,5"
38+
case macPro = "Mac14,8"
39+
case macStudioM1Max = "Mac13,1"
40+
case macStudioM1Ultra = "Mac13,2"
41+
case macStudioM2Max = "Mac14,13"
42+
case macStudioM2Ultra = "Mac14,14"
543
case miniM1 = "Macmini9,1"
44+
case miniM2 = "Mac14,3"
45+
case miniM2Pro = "Mac14,12"
46+
case miniM4 = "Mac16,10"
47+
case miniM4Pro = "Mac16,11"
648
}
749
}
850

Sources/DeviceIdentificator/Processor.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public extension DeviceModel {
2222
case appleM3
2323
case appleM3Pro
2424
case appleM3Max
25+
case appleM4
26+
case appleM4Pro
27+
case appleM4Max
2528

2629
// iPhone/iPads/TVs:
2730
case appleA4

0 commit comments

Comments
 (0)