遊戲項目中有一個專門用於收集IOS崩潰的接口和查詢頁,運營/測試的同事有時候會通過查詢頁大概看一下每日崩潰的情況,經常會問iPhone6,1是什麼,iPhone7,1又是什麼設備?
我從網上仔細搜索了一下,目前最全的是來自維基百科的:List of iOS devices
其中Hardware strings這一欄目前是最全的,iPhone後面第一位數字表示的是第幾代iPhone,比如上面的7,表示第7代iphone,也就是iphone6。下面來列一下iphone設備列表
Apple iPhone | Hardware identifier |
---|---|
iPhone(Original/1st Gen/EDGE) | iPhone1,1 |
iPhone 3G | iPhone1,2 |
iPhone 3GS | iPhone2,1 |
iPhone 3G(China/No Wi-Fi) | iPhone1,2 |
iPhone 3GS(China/No Wi-Fi) | iPhone2,1 |
iPhone 4(GSM) | iPhone3,1 |
iPhone 4 (CDMA/Verizon/Sprint) | iPhone3,3 |
iPhone 4S | iPhone4,1 |
iPhone 5 (GSM/LTE 4, 17/North America) | iPhone5,1 |
iPhone 5 (CDMA/LTE, Sprint/Verizon/KDDI) | iPhone5,2 |
iPhone 5 (GSM/LTE 1, 3, 5/International) | iPhone5,1 |
iPhone 5 (CDMA China/UIM/WAPI) | iPhone5,2 |
iPhone 5 (GSM/LTE/AWS/North America) | iPhone5,1 |
iPhone 5c (GSM/North America/A1532) | iPhone5,3 |
iPhone 5c (CDMA/Verizon/A1532) | iPhone5,3 |
iPhone 5c (UK/Europe/Middle East/A1507) | iPhone5,4 |
iPhone 5c (China Mobile/A1516) | iPhone5,4 |
iPhone 5c (China Unicom/A1526) | iPhone5,4 |
iPhone 5s (CDMA/Verizon/A1533) | iPhone6,1 |
iPhone 5s (CDMA/China Telecom/A1533) | iPhone6,1 |
iPhone 5s (China Mobile/A1518) | iPhone6,2 |
iPhone 6 (GSM/North America/A1549) | iPhone7,2 |
iPhone 6 (CDMA/Verizon/A1549) | iPhone7,2 |
iPhone 6 (China Mobile/A1589) | iPhone7,2 |
iPhone 6 Plus (China Mobile/A1593) | iPhone7,1 |
表格數據來源:http://www.everymac.com/systems/apple/iphone/index-iphone-specs.html
每一代Phone,都有很多不同的版本,比如韓版、歐版、港版的區分,iPad更有3G/WiFi的區分,所以上述方法只能判斷出當前設備大概是什麼型號,不是很精準,針對某些設置上纔出現的bug,可能需要更深入的一些細分了。不過,通常來看,設備型號 + IOS系統版本,基本上就很容易復現問題了,越獄對bug的影響越來越小。
今年,Apple Watch又發佈了,所以又加了倆:Watch1,1、Watch1,2(鑑於watch的屏幕、性能限制,暫時沒什麼遊戲能上的去,可以忽略),除此之外,還有Apple TV,貌似在國內還沒啥市場也可以暫時忽略。上面列表也只是列出了iPhone、iPad,其它的還有iPod touch,有興趣可以參考這裏:
http://theiphonewiki.com/wiki/Models
這裏提供一份示例代碼:
- (NSString *)platformString { NSString *platform = [self platform]; if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4"; if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)"; if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)"; if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)"; if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus"; if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; if ([platform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G"; if ([platform isEqualToString:@"iPad1,1"]) return @"iPad"; if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2 (WiFi)"; if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)"; if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini (GSM)"; if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)"; if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)"; if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM+CDMA)"; if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3 (GSM)"; if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)"; if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4 (GSM)"; if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4 (GSM+CDMA)"; if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)"; if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)"; if ([platform isEqualToString:@"iPad4,4"]) return @"iPad mini 2G (WiFi)"; if ([platform isEqualToString:@"iPad4,5"]) return @"iPad mini 2G (Cellular)"; if ([platform isEqualToString:@"i386"]) return @"Simulator"; if ([platform isEqualToString:@"x86_64"]) return @"Simulator"; return platform; }
更多參考: