参考:https://en.wikipedia.org/wiki/List_of_iOS_devices
持续更新 ……
iPhone Model |
Hardware strings |
iPhone |
iPhone1,1 |
iPhone 3G |
iPhone1,2 |
iPhone 3GS |
iPhone2,1 |
iPhone 4 |
iPhone3,1 iPhone3,2 iPhone3,3 |
iPhone 4S |
iPhone4,1 |
iPhone 5 |
iPhone5,1 iPhone5,2 |
iPhone 5C |
iPhone5,3 iPhone5,4 |
iPhone 5S |
iPhone6,1 iPhone6,2 |
iPhone 6 |
iPhone7,2 |
iPhone 6 Plus |
iPhone7,1 |
iPhone 6S |
iPhone8,1 |
iPhone 6S Plus |
iPhone8,2 |
iPhone SE |
iPhone8,4 |
iPhone SE2 |
iPhone12,8 |
iPhone 7 |
iPhone9,1 iPhone9,3 |
iPhone 7 Plus |
iPhone9,2 iPhone9,4 |
iPhone 8 |
iPhone10,1 iPhone10,4 |
iPhone 8 Plus |
iPhone10,2 iPhone10,5 |
iPhone X |
iPhone10,3 iPhone10,6 |
iPhone XS |
iPhone11,2 |
iPhone XS Max |
iPhone11,4 iPhone11,6 |
iPhone XR |
iPhone11,8 |
iPhone 11 |
iPhone12,1 |
iPhone 11 Pro |
iPhone12,3 |
iPhone 11 Pro Max |
iPhone12,5 |
iPad Model |
Hardware strings |
iPad |
iPad1,1 |
iPad 2 |
iPad2,1 iPad2,2 iPad2,3 iPad2,4 |
iPad 3rd |
iPad3,1 iPad3,2 iPad3,3 |
iPad 4th |
iPad3,4 iPad3,5 iPad3,6 |
iPad 5th |
iPad6,11 iPad6,12 |
iPad 6th |
iPad7,5 iPad7,6 |
iPad 7th |
iPad7,11 iPad7,12 |
iPad Mini |
iPad2,5 iPad2,6 iPad2,7 |
iPad Mini 2 |
iPad4,4 iPad4,5 iPad4,6 |
iPad Mini 3 |
iPad4,7 iPad4,8 iPad4,9 |
iPad Mini 4 |
iPad5,1 iPad5,2 |
iPad Mini 5th |
iPad11,1 iPad11,2 |
iPad Air |
iPad4,1 iPad4,2 iPad4,3 |
iPad Air 2 |
iPad5,3 iPad5,4 |
iPad Air 3rd |
iPad11,3 iPad11,4 |
iPad Pro 12.9-inch 1st |
iPad6,7 iPad6,8 |
iPad Pro 9.7-inch |
iPad6,3 iPad6,4 |
iPad Pro 12.9-inch 2nd |
iPad7,1 iPad7,2 |
iPad Pro 10.5-inch |
iPad7,3 iPad7,4 |
iPad Pro 12.9-inch 3rd |
iPad8,5 iPad8,6 iPad8,7 iPad8,8 |
iPad Pro 11-inch |
iPad8,1 iPad8,2 iPad8,3 iPad8,4 |
static func deviceModel() -> 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)))
}
switch identifier {
case "i386", "x86_64": return "iPhone Simulator"
case "iPhone1,1": return "iPhone"
case "iPhone1,2": return "iPhone 3G"
case "iPhone2,1": return "iPhone 3GS"
case "iPhone3,1": return "iPhone 4"
case "iPhone3,2": return "iPhone 4"
case "iPhone3,3": return "iPhone 4"
case "iPhone4,1": return "iPhone 4S"
case "iPhone5,1": return "iPhone 5"
case "iPhone5,2": return "iPhone 5"
case "iPhone5,3": return "iPhone 5C"
case "iPhone5,4": return "iPhone 5C"
case "iPhone6,1": return "iPhone 5S"
case "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 "iPhone8,4": return "iPhone SE"
case "iPhone12,8": return "iPhone SE2"
case "iPhone9,1": return "iPhone 7"
case "iPhone9,3": return "iPhone 7"
case "iPhone9,2": return "iPhone 7 Plus"
case "iPhone9,4": return "iPhone 7 Plus"
case "iPhone10,1": return "iPhone 8"
case "iPhone10,4": return "iPhone 8"
case "iPhone10,2": return "iPhone 8 Plus"
case "iPhone10,5": return "iPhone 8 Plus"
case "iPhone10,3": return "iPhone X"
case "iPhone10,6": return "iPhone X"
case "iPhone11,2": return "iPhone XS"
case "iPhone11,4": return "iPhone XS Max"
case "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 "iPad1,1": return "iPad 1"
case "iPad2,1": return "iPad 2"
case "iPad2,2": return "iPad 2"
case "iPad2,3": return "iPad 2"
case "iPad2,4": return "iPad 2"
case "iPad3,1": return "iPad 3rd"
case "iPad3,2": return "iPad 3rd"
case "iPad3,3": return "iPad 3rd"
case "iPad3,4": return "iPad 4th"
case "iPad3,5": return "iPad 4th"
case "iPad3,6": return "iPad 4th"
case "iPad6,11": return "iPad 5th"
case "iPad6,12": return "iPad 5th"
case "iPad7,5": return "iPad 6th"
case "iPad7,6": return "iPad 6th"
case "iPad7,11": return "iPad 7th"
case "iPad7,12": return "iPad 7th"
case "iPad2,5": return "iPad Mini"
case "iPad2,6": return "iPad Mini"
case "iPad2,7": return "iPad Mini"
case "iPad4,4": return "iPad Mini 2"
case "iPad4,5": return "iPad Mini 2"
case "iPad4,6": return "iPad Mini 2"
case "iPad4,7": return "iPad Mini 3"
case "iPad4,8": return "iPad Mini 3"
case "iPad4,9": return "iPad Mini 3"
case "iPad5,1": return "iPad Mini 4"
case "iPad5,2": return "iPad Mini 4"
case "iPad11,1": return "iPad Mini 5"
case "iPad11,2": return "iPad Mini 5"
case "iPad4,1": return "iPad Air"
case "iPad4,2": return "iPad Air"
case "iPad4,3": return "iPad Air"
case "iPad5,3": return "iPad Air 2"
case "iPad5,4": return "iPad Air 2"
case "iPad11,3": return "iPad Air 3rd"
case "iPad11,4": return "iPad Air 3rd"
case "iPad6,7": return "iPad Pro 12.9-inch 1st"
case "iPad6,8": return "iPad Pro 12.9-inch 1st"
case "iPad6,3": return "iPad Pro 9.7-inch"
case "iPad6,4": return "iPad Pro 9.7-inch"
case "iPad7,1": return "iPad Pro 12.9-inch 2nd"
case "iPad7,2": return "iPad Pro 12.9-inch 2nd"
case "iPad7,3": return "iPad Pro 10.5-inch"
case "iPad7,4": return "iPad Pro 10.5-inch"
case "iPad8,5": return "iPad Pro 12.9-inch 3rd"
case "iPad8,6": return "iPad Pro 12.9-inch 3rd"
case "iPad8,7": return "iPad Pro 12.9-inch 3rd"
case "iPad8,8": return "iPad Pro 12.9-inch 3rd"
case "iPad8,1": return "iPad Pro 11-inch"
case "iPad8,2": return "iPad Pro 11-inch"
case "iPad8,3": return "iPad Pro 11-inch"
case "iPad8,4": return "iPad Pro 11-inch"
case "iPod1,1": return "iPod Touch 1st"
case "iPod2,1": return "iPod Touch 2nd"
case "iPod3,1": return "iPod Touch 3rd"
case "iPod4,1": return "iPod Touch 4th"
case "iPod5,1": return "iPod Touch 5th"
case "iPod7,1": return "iPod Touch 6th"
case "AppleTV2,1": return "Apple TV 2nd"
case "AppleTV3,1": return "Apple TV 3rd"
case "AppleTV3,2": return "Apple TV 3rd Rev A"
case "AppleTV5,3": return "Apple TV HD"
case "AppleTV6,2": return "Apple TV 4K"
default: return identifier
}
}