iOS模拟器simctl调试工具

2022-02-09  本文已影响0人  yue博客

命令行工具 Simulator control

命令的基本组成

xcrun simctl [subcommand] [<device>] [<subcommand option>] [<bundle identifier>] ...
[subcommand] 可以在终端中输入:xcrun simctl --help可以看到simctl包含的子命令
[<device>] 用来指定模拟器,可以填写模拟器的UDID或者填写booted自动选择模拟器
[<subcommand option>] 在终端中输入:xcrun simctl [subcommand]可以看到某个子命令的功能说明、使用方法和用法示例
[<bundle identifier>] 一些子命令需要具体指定到某一个app

subcommand示例

如ui子命令,在终端输入xcrun simctl ui会输出如下信息:

说明:Get or Set UI options
使用方法:Usage: simctl ui <device> <option> [<arguments>]
用法示例:
appearance
When invoked without arguments prints the current user interface appearance style:
light
The Light appearance style.
dark
The Dark appearance style.
unsupported
The platform or runtime version do not support appearance styles.
unknown
The current style is unknown or there was an error detecting it.

在终端输入xcrun simctl ui booted appearance dark意为把模拟器切换为深色模式

一些常用的功能说明

privacy 隐私访问权限调试

包含all, calendar ,contacts-limited, contacts 等子命令
以相册访问权限为例
获取相册权限:xcrun simctl privacy booted grant photos <bundle id>
撤销相册权限:xcrun simctl privacy booted revoke photos <bundle id>
重置相册权限,下次调用时弹窗, <bundle id>可不传:xcrun simctl privacy booted reset photos <bundle id>

push推送调试

需要准备一个json文件,要求必须包含aps字段,最大不超过4096字节

{
  "Simulator Target Bundle": "bundle id",
  "aps": {
       "alert": {
           "title": "主标题",
           "subtitle": "副标题",
           "body": "内容"
       }
   }
}

使用时cd到json文件所在目录下,如json文件中包含Simulator Target Bundle字段指明了bundle id,则输入命令可不指定bundle id,如未包含Simulator Target Bundle字段,则需在命令中指定bundle id。
xcrun simctl push booted <json file name>
xcrun simctl push booted <bundle id> <json file name>
另外,如json文件中包含Simulator Target Bundle字段指明了bundle id,可直接拖拽json文件至模拟器,无需输入命令。
参考WWDC 20-10647

上一篇下一篇

猜你喜欢

热点阅读