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 ...
随机推荐
- Statement执行静态SQL语句
package com.isoftstone.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java. ...
- java数据结构之树
树定义和基本术语定义树(Tree)是n(n≥0)个结点的有限集T,并且当n>0时满足下列条件: (1)有且仅有一个特定的称为根(Root)的结点: (2)当n>1时,其余结 ...
- JAVA 类和对象基础知识详解
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象.而面向对象的思想是来源与显示生 ...
- JedisConnectionException: java.net.ConnectException: Connection refused
出现问题 我遇到的一个问题,在连接redis的时候出现了错误!错误如下: JedisConnectionException: java.net.ConnectException: Connection ...
- BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)
题目链接 先考虑 假设S确定,使构造S操作次数最小的方案应是:对T建SAM,S在SAM上匹配,如果有S的转移就转移,否则操作数++,回到根节点继续匹配S.即每次操作一定是一次极大匹配. 简单证明:假设 ...
- BZOJ4278 : [ONTAK2015]Tasowanie
首先在串的末尾加上1000,然后进行归并,每次取字典序较小的那个后缀即可. 用hash+二分支持查询lcp,时间复杂度$O(n\log n)$. #include<cstdio> type ...
- BZOJ4247 : 挂饰
首先将挂饰按照挂钩个数从大到小排序,然后DP 设f[i][j]处理完前i个挂饰,还有j个多余挂钩的最大喜悦值,则 f[0][1]=0 f[i][j]=max(f[i-1][max(j-a[i],0)+ ...
- 媒体查询@media query
@media query 媒体查询 @media (min-width:768px)小屏 (>=) @media (min-width:992px)中屏 @media (min-width:12 ...
- MySQL分析数据运行状态【SHOW PROCESSLIST】
这个博文,将只是简单的记录一下,我们的数据库操作和使用中,加索引加不上去,分析的过程,其实比较简单,就是看有没有连接进程还在操作表.有的话,将其停掉(不影响业务的场景下). 今天的主角是: SHOW ...
- 区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题
ES3 ES5this的指向问题 this指的是该函数被调用的对象 var foo = function () { this.a = 'a', this.b = 'b', this.c = { a: ...