The game project has a dedicated interface and query page for collecting iOS crashes, and the operations/testing colleagues sometimes look at the daily crashes through a query page, often asking what iphone6,1 is, and what is iphone7,1?
I searched the internet carefully, the most complete is from Wikipedia: List of IOS devices
One of the hardware strings is now the most complete, and the first digit on the back of the iphone represents the iphone, such as the 7 above, which represents the 7th-generation iphone, or iphone6. The list of iphone devices is listed below.
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 |
Tabular data Source: http://www.everymac.com/systems/apple/iphone/index-iphone-specs.html
Each generation of phone, there are many different versions, such as Korean version, European version, the port version of the distinction, the ipad is more 3g/wifi, so the above method can only determine what the current device is probably the model, not very accurate, for some settings appear on the bug, may need more in-depth some of the subdivision. However, generally speaking, the device model + iOS system version, basically easy to reproduce the problem, jailbreak on the impact of the bug is getting smaller.
This year, Apple Watch was released again, adding two more: watch1,1, watch1,2 (given the watch screen, performance restrictions, there is no game to go to, can be ignored), in addition, Apple TV, seemingly in the domestic market can be temporarily ignored. The list above is just an iphone, IPad, and ipod Touch, which is interesting to see here:
Http://theiphonewiki.com/wiki/Models
A sample code is provided here:
-(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";
returnPlatform
}
For more information:
[1] How to check IOS version?
[2] Determine Device (iphone, IPod Touch) with iphone SDK
[3] The IPhone wiki Models
IOS Devices Version