IOS Devices Version

遊戲項目中有一個專門用於收集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;
}

更多參考:

[1]How to check iOS version?

[2]Determine device (iPhone, iPod Touch) with iPhone SDK

[3]The iPhone wiki Models

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章