在开发iOS app时,模拟器扮演着十分重要的角色。模拟器可以帮助我们快速、简单的在开发过程中进行测试。针对不同分辨率、不同系统的设备进行适配。苹果提供的模拟器入门文档几乎包含了所有通过图形界面来控制模拟器的知识。尽管模拟器有丰富的图形化界面操作,但是如果要在持续集成服务器上运行脚本来与模拟器交互,似乎是一件非常痛苦的事情。今天我们就来看看如何通过命令行的方式与iOS模拟器进行交互。
simctl
苹果提供了一个命令行工具来与iOS模拟器进行交互。这与安卓的adb
命令非常相似。虽然苹果官方文档没有对它进行任何说明。但是我们可以通过Applications/Xcode.app/Contents/Developer/usr/bin/simctl
路径找到它。由于是XCode内置的命令,所以在使用的时候要在该命令前面加上xcrun
。我们可以通过以下命令来查看该命令所有的功能选项。
$ xcrun simctl help
我们可以看到功能很多,针对模拟器本身来说可以进行创建、删除、克隆、升级、重置、重命名、启动、关闭。也可以为模拟器安装、卸载、打开、关闭应用,导入照片、视频,查看安装的app等等功能。
子命令 | 功能 |
---|---|
create | 新建一个新的模拟器 |
clone | 克隆一个已有的模拟器 |
upgrade | 给模拟器升级系统 |
delete | 删除一个模拟器或删除全部不可用模拟器 |
pair | 将手表模拟器和iPhone模拟器进行配对 |
unpair | 解除手表模拟器和iPhone模拟器的配对 |
pair_activate | 激活手表模拟器和iPhone模拟器的配对 |
erase | 清除模拟器的所有数据和设置 |
boot | 启动一个模拟器 |
shutdown | 关闭一个模拟器 |
rename | 重命名模拟器 |
getenv | 获取模拟器环境变量对应的值 |
openurl | 打开一个链接(不局限于网页链接) |
addphoto | 给模拟器相册中添加照片 |
addvideo | 给模拟器相册中添加视频 |
addmedia | 给模拟器相册中添加照片、LIVE照片或者视频 |
install | 安装一个应用 |
uninstall | 卸载一个应用 |
get_app_container | 获取应用的沙盒路径 |
launch | 打开一个应用 |
terminate | 关闭一个应用 |
spawn | 开启一个新进程 |
list | 列出所有可用的模拟器、模拟器类型、系统版本、设备配对情况 |
icloud_sync | 触发设备上的iCloud同步 |
pbinfo | 打印模拟器粘贴板的信息 |
pbsync | 将设备粘贴板的信息同步给其他设备 |
pbcopy | 将标准输入复制到设备粘贴板上 |
pbpaste | 将设备的剪切板打印到标准输出中 |
notify_post | <