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;
}
更多参考:
[2]Determine device (iPhone, iPod Touch) with iPhone SDK
IOS Devices Version的更多相关文章
- No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a
No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a ...
- Send Push Notifications to iOS Devices using Xcode 8 and Swift 3, APNs Auth Key
Send Push Notifications to iOS Devices using Xcode 8 and Swift 3 OCT 6, 2016 Push notifications are ...
- iOS Simulator version 11 or later is currently not supported.
iOS Simulator version 11 or later is currently not supported.You can open Xcode > Preferences > ...
- CISCO运维记录之3650堆叠设备升级IOS(Version 16.3.6版本存在bug)
CISCO运维记录之3650堆叠设备升级IOS(Version 16.3.6版本存在bug) 思科3000系列交换机使用cat3k_caa-universalk9.16.3.6版本存在bug,设备运行 ...
- Cocoapods 报警告Automatically assigning platform ios with version 9.0 on target....
Automatically assigning platform iOS with version 9.0 on target 你的工程名称 because no platform was speci ...
- CISCO运维记录之4507设备升级IOS(Version 03.03.02.SG版本存在bug)
CISCO运维记录之3650堆叠设备升级IOS(Version 03.03.02.SG版本存在bug) 1. 问题详情 思科45系列交换机使用Catalyst 4500 L3 Switch Softw ...
- Registering iOS Devices for Testing - 注册测试设备
http://support.smartbear.com/viewarticle/63764/ Applications developed using the iOS Developer Progr ...
- iOS 版本号Version和Build的区别
一个version,一个build,都是设置版本的地方,有什么区别呢? 在ios中(Android等工程中也一样),有两种version,一种是 CFBundleVersion ("Bund ...
- Summary of Critical and Exploitable iOS Vulnerabilities in 2016
Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...
随机推荐
- Python 协程检测Kubernetes服务端口
一.需求分析 在上一篇文章,链接如下: https://www.cnblogs.com/xiao987334176/p/10237551.html 已经得到了需要的数据,现在需要对这些端口做检测,判断 ...
- Notes for building gimp-print
First try, build gimp-print on ubuntu. 1. Install all dependencies. sudo apt-get install libcups2-de ...
- EFCore CodeFirst 适配数据库
EF6中可以直接根据代码模型生成数据库Database.SetInitializer即可 在EFCore中如何实现呢? 这项功能放在了DatabaseFacade对象中,传入数据库上下文对象实例化到一 ...
- web程序快速开发
关于web程序快速开发个人见解以及经历 由于在之前公司业务的发展,需要在基于核心业务的基础上开发其他较为独立的业务系统,所以就有了这个基于Dapper,DDD概念的基础框架,由于个人基于这个框架已经经 ...
- bzoj 1178 [Apio2009]CONVENTION会议中心
这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取. 但是这个题要求选取的线段排序之后序号的字典序最小. 那么我们如果按序号贪心地从大往小往里放, 那么对于第k ...
- [C] 错误笔记:函数调用——值传递
前提: 写一个函数,功能为在堆内开辟一块空间,并将首地址以函数参数的形式返回主调函数 错误demo void test(char *a) { ] = "hello"; printf ...
- priority_queue<int>q;
priority_queue<int>q;//默认不递增q.size();//q中有几个元素q.pop();//删除队首q.top();//返回队首元素q.push();//在队列中插入一 ...
- 004.KVM日常管理1
一 常用命令 1.1 查看虚机列表及状态 [root@kvm-host ~]# virsh list --all 1.2 连接虚机 [root@kvm-host ~]# virsh console v ...
- 子类 父类强转 HttpServlet service实现
相当于 走父类 临时走了一趟 HttpServletRequest ->ServletRequets -> HttpServeltRequest /* */ public void ser ...
- mongodb for windows安装
1,下载mongodb for windwos 下载地址:https://www.mongodb.com/download-center#community 2,创建db和log的文件夹 D:\dat ...