这里每天分享一个 iOS 的新知识,快来关注我吧
前言
作为 iOS 开发,开发过程中一定对模拟器不陌生,使用 iOS 模拟器能够提高您的工作效率。
之前也讲过一些关于模拟器的功能,可以去看看。
模拟器有很多便利的功能,比如截屏、录屏、显示离屏渲染等等,但很多开发者不知道,使用终端命令也能操作模拟器,用好命令行也是加快开发速度的好方法,今天就来讲讲如何使用命令行操作模拟器。
xcrun Simctl 命令
Xcode CLI 附带的 xcrun
命令具有一组命令行工具。其中之一是 Simctl
,我们可以使用它与 Xcode 模拟器进行交互。
Simctl
是 Simulator Control
的简称,可以用它对模拟器进行一些高级功能的操作,有点类似于安卓的 ADB 工具。
Simctl
工具与 Xcode 捆绑在一起,位于 Xcode 的包下。可以在以下路径中找到它:
bash
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
simctl 的使用
首先我们先用以下命令看看 simctl 都支持哪些参数和功能,在命令行输入:
可以看到它已经把这个命令相关的信息都打印出来了:
简单来说,使用这个命令的规范是:
xml
simctl [--set <path>] [--profiles <path>] <subcommand> ...
在上边打印的功能列表中可以看到很多子功能,比如 boot、create、delete 等等,如果你不知道某个子功能如何使用,可以通过下边的命令查看使用方法,比如我想知道 status_bar 这个命令是干什么的,则可以输入:
bash
xcrun simctl help status_bar
从打印的信息来看,这个命令是操作模拟器的状态栏的:
具体使用示例
接下来讲一些使用示例。
1、查看模拟器列表
如果你想看一下目前你的设备上装了哪些模拟器,可以通过这个命令查看:
这样它就把你所有模拟器打印出来了:
因为我平时用模拟器比较多,所以电脑上安装了相当多的模拟器,只截了一部分出来,打印出的数据中,每一行是一个模拟器信息,包含了模拟器名称、UUID 和启动信息,Shutdown 代表没有启动,Booted 代表已启动。
还可以通过下边的命令只打印已启动的模拟器列表:
perl
xcrun simctl list | grep Booted
2、创建模拟器
其实 Xcode 支持在图形页面上直接创建模拟器,当然也可以通过命令行来创建,比如我要创建一个 iOS 17.4 的 iPhone 14 模拟器:
lua
xcrun simctl create my-custom-simulator com.apple.CoreSimulator.SimDeviceType.iPhone-14 com.apple.CoreSimulator.SimRuntime.iOS-17-4
xcrun simctl create
是创建命令,随后的第一个参数是自定义名称,第二个参数是 iPhone 的型号,第三个参数是系统版本。
创建成功后,控制台会输出一个 UUID,之后你就可以通过这个 UUID 来操作这个模拟器了。
3、 启动模拟器
刚刚创建了一个新的模拟器,我们来启动它:
xcrun simctl boot 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F
同样,xcrun simctl boot
是启动模拟器的命令,随后的参数是你创建模拟器时生成的 UUID,或者使用它的名字也是可以的。
4、 修改状态栏
前面说了 status_bar
命令可以操作状态栏,我们就用这个命令来修改一下状态栏样式。
把网络信号修改为 5g+
arduino
xcrun simctl status_bar 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F override --dataNetwork 5g+
把电量改为 50%
arduino
xcrun simctl status_bar 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F override --batteryLevel '50'
把时间改为 9 点 41 分
arduino
xcrun simctl status_bar 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F override --time '09:41'
5、将模拟器关机
使用这个命令关闭某个模拟器:
arduino
xcrun simctl shutdown 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F
6、删除某个模拟器
当你不再需要这个模拟器时,可以使用如下命令删除它:
arduino
xcrun simctl delete 2B68ADF4-CD0C-4D4E-B043-6C84A8CB890F
总结
大家应该已经见识到命令行控制模拟器的强大之处了,其实今天展示的部分只是其冰山一角,还有很多很多功能,不能一一展示了,大家自己去探索吧。
其实著名的 Mac 应用 RocketSim
就是基于这套命令行实现的,之前也有介绍过这个应用,可以点击这个链接查看。
这里每天分享一个 iOS 的新知识,快来关注我吧
本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!