iOS 测试 iOS 测试之非代码获取 iPhone 型号及其他信息

烟消云散 · 2017年10月16日 · 最后由 沙子 回复于 2017年10月20日 · 3244 次阅读

首先

安装 libimobiledevice 和 ideviceinstaller

$ brew uninstall ideviceinstaller
$ brew uninstall libimobiledevice
$ brew install --HEAD libimobiledevice
$ brew link --overwrite libimobiledevice
$ brew install ideviceinstaller
$ brew link --overwrite ideviceinstaller

应用相关

1、 安装应用(真机)

$ ideviceinstaller -i xxx.ipa

2、 卸载应用(真机)

$ ideviceinstaller -U <bundleId>

3、 获取应用唯一标识

$ unzip xxx.ipa
$ cd Payload/xxx.app
$ defaults read `pwd`/Info CFBundleIdentifier
com.test

4、从源码构建应用安装包

这里只举 debug 包

$ cd /source-folder/
$ PROJECT=<your-project-name>
$ xcodebuild clean -project $PROJECT.xcodeproj -configuration Debug -alltargets
$ xcodebuild archive -project $PROJECT.xcodeproj -scheme $PROJECT -archivePath $PROJECT.xcarchive
# 注意,末尾的 exportProvisioningProfile 参数值是在 Xcode 的 Performance->Accounts->Apple ID->View Details 窗口的下半部分看到的名称。如 iOS Team Provisioning Profile: chj.ToDoList
$ xcodebuild -exportArchive -archivePath $PROJECT.xcarchive -exportPath $PROJECT -exportFormat ipa -exportProvisioningProfile "your provision profile"
# build 完的 ipa 包直接就放在当前目录

设备相关

1、查看设备中的应用列表

$ ideviceinstaller [-u <device-udid>] -l
Total: 46 apps
com.xiaojukeji.didi - 滴滴出行 4.1.5.0
com.tencent.mqq - QQ 6.0.0.424

2、获取真机实时日志

$ idevicesyslog [-u <device-udid>]

3、获取当前连接的设备列表

# 注意:这里列出的设备包括模拟器及 mac 电脑本身
$ instruments -s devices

iPhone 信息相关

1、获取 iPhone 的 udid

$ idevice_id -l

2、获取 ios 手机信息

$ ideviceinfo 

3、获取 ios 手机信息,并以 xml 形式显示

$ ideviceinfo -x 

4、获取手机型号

$ ideviceinfo -k ProductType 

5、获取系统版本

$ ideviceinfo -k ProductVersion

6、获取手机名称

$ ideviceinfo -k DeviceName 

注:获取手机型号与实际手机型号对照

获取手机型号 实际手机型号
iPhone3,1 iPhone 4
iPhone3,2 iPhone 4
iPhone3,3 iPhone 4
iPhone4,1 iPhone 4S
iPhone5,1 iPhone 5
iPhone5,2 iPhone 5 (GSM+CDMA)
iPhone5,3 iPhone 5c (GSM)
iPhone5,4 iPhone 5c (GSM+CDMA)
iPhone6,1 iPhone 5s (GSM)
iPhone6,2 iPhone 5s (GSM+CDMA)
iPhone7,1 iPhone 6 Plus
iPhone7,2 iPhone 6
iPhone8,1 iPhone 6s
iPhone8,2 iPhone 6s Plus
iPhone8,4 iPhone SE
iPhone9,1 国行、日版、港行 iPhone 7
iPhone9,2 港行、国行 iPhone 7 Plus
iPhone9,3 美版、台版 iPhone 7
iPhone9,4 美版、台版 iPhone 7 Plus

px 与 pt 区别

字体大小的设置单位,常用的有 2 种:pxpt。这两个有什么区别呢?

先搞清基本概念:

px就是表示 pixel,像素,是屏幕上显示数据的最基本的点;

pt就是 point,是印刷行业常用单位,等于 1/72 英寸。

px全称为 pixel,是一个点,它不是自然界的长度单位,谁能说出一个 “点” 有多长多大么?可以画的很小,也可以很大。如果点很小,那画面就清晰,我们称它为 “分辨率高”,反之,就是 “分辨率低”。所以,“点” 的大小是会 “变” 的,也称为 “相对长度”。

pt全称为 point,但中文不叫 “点”,查金山词霸可以看到,确切的说法是一个专用的印刷单位 “磅”,大小为 1/72 英寸。所以它是一个自然界标准的长度单位,也称为 “绝对长度”。

因此就有这样的说法:

  • pixel 是相对大小,
  • point 是绝对大小。

iPhone 各种屏幕分辨率

2017-10-18

iOS 系统历史版本概览

日期 版本号
2013.09.18 iOS 7.0
2013.09.20 iOS 7.0.1
2013.09.26 iOS 7.0.2
2013.10.22 iOS 7.0.3
2013.11.14 iOS 7.0.4
2014.01.29 iOS 7.0.5
2014.02.21 iOS 7.0.6
2014.03.10 iOS 7.1
2014.04.22 iOS 7.1.1
2014.06.30 iOS 7.1.2
2014.09.17 iOS 8.0
2014.09.24 iOS 8.0.1
2014.09.25 iOS 8.0.2
2014.10.20 iOS 8.1
2014.11.17 iOS 8.1.1
2014.12.09 iOS 8.1.2
2015.01.27 iOS 8.1.3
2015.03.09 iOS 8.2
2015.04.08 iOS 8.3
2015.06.30 iOS 8.4
2015.08.13 iOS 8.4.1
2015.09.16 iOS 9.0
2015.09.23 iOS 9.0.1
2015.09.30 iOS 9.0.2
2015.10.21 iOS 9.1
2015.12.08 iOS 9.2
2016.01.19 iOS 9.2.1
2016.03.21 iOS 9.3
2016.03.31 iOS 9.3.1
2016.05.16 iOS 9.3.2
2016.07.18 iOS 9.3.3
2016.08.04 iOS 9.3.4
2016.08.25 iOS 9.3.5
2016.09.13 iOS 10
2016.09.13 iOS 10.0.1
2016.09.23 iOS 10.0.2
2016.10.17 iOS 10.0.3
2016.10.24 iOS 10.1
2016.10.31 iOS 10.1.1
2016.12.12 iOS 10.2
2017.01.23 iOS 10.2.1
2017.03.28 iOS 10.3
2017.04.11 iOS 10.3.1
2017.05.16 iOS 10.3.2
2017.07.20 iOS 10.3.3

其他版本参考:http://api.ineal.me/tss/status

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

不错的基本知识普及

恒温 回复

233,万水千山总是情,给个加精行不行

idevice_id -l获取 udid,有时候没有连接 iPhone 设备,也能获取到 udid,就是获取到的结果不一定是在线的设备,有遇到这样的问题吗,请教一下。

沙子 回复

我也遇到过这样的问题,所以我一般用 ideviceinfo -k UniqueDeviceID 来获取

沙子 回复

一般没有设备就直接跳过的吧 --- 没有设备你获取的 udid 是什么?是上一次你连接的设备 udid 还是模拟器的 udid?

@xiaoshouzi 多谢 我试试这个
@yxys01 不管设备连上没连上,是获取真机的 udid ,idevice_id -l获取到的 udid 可能是所有连过这个电脑的设备 udid,很奇怪

沙子 回复

idevice_id -l我试了好多次,都是获取真机的 udid,没连接就是直接跳过去,也没显示其他的 udid。。。
ios-minicap 里面有一条获取 udid 的命令system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'你也可以拿去用下

@yxys01 多谢多谢 我用用试试

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册