Xcode 13中替代instruments -w在iOS真机按模板运行应用的方法
问题背景
Apple从Xcode 13版本开始移除了原生instruments命令行工具,原有instruments -w -t <tracetemplate>相关的设备操作能力已整合到新的工具链中,以下是通过命令行直接启动已编译iOS应用的可行方案:
解决方案
1. 全场景通用方案(适配真机+模拟器,Xcode 13+支持)
使用Xcode官方替代工具xctrace,可完全覆盖原instruments的能力:
- 首先查询已连接的设备/模拟器UDID:
xcrun xctrace list devices - 原
instruments -w -t <tracetemplate>命令的等价替换写法,追加启动应用参数即可:xcrun xctrace run --device <设备UDID> --template <tracetemplate路径> --launch <应用Bundle ID> - 若仅需单纯启动应用无需采集性能数据,可省略模板参数:
xcrun xctrace run --device <设备UDID> --launch <应用Bundle ID>
2. 真机专属优化方案(Xcode 15+支持)
Xcode 15新增devicectl工具,真机操作稳定性更高,无需关联性能模板即可直接操作应用:
- 查询已连接真机UDID:
xcrun devicectl list devices - 启动已安装的应用:
xcrun devicectl device process launch --device <设备UDID> <应用Bundle ID> - 若应用尚未安装到真机,可先执行安装再启动:
xcrun devicectl device install app --device <设备UDID> <本地IPA包路径> xcrun devicectl device process launch --device <设备UDID> <应用Bundle ID>
3. 模拟器专属方案
模拟器场景使用simctl工具操作更轻量化:
- 查询可用模拟器列表:
xcrun simctl list devices - 启动指定模拟器(未运行时执行):
xcrun simctl boot <模拟器UDID> - 安装本地已编译的.app包:
xcrun simctl install <模拟器UDID> <本地.app文件路径> - 启动已安装的应用:
xcrun simctl launch <模拟器UDID> <应用Bundle ID>
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

