在运行UITests时如何获取App日志?(适用于Xcode 14)
在Xcode 14中获取App日志(非测试日志)的方法
Xcode图形界面操作
- 运行App后,打开Console面板(通过
View > Debug Area > Activate Console快速调出),这里能实时查看App的所有日志输出。需要导出的话,点击面板右上角的导出按钮,选择保存路径即可。 - 针对xcresult文件:打开xcresult后,展开左侧的Logs目录,找到对应App进程的日志条目(不是Runner的通用日志),右键选择「Export」就能单独导出App日志。默认xcresult里的Runner日志可能混有其他输出,直接找App进程的日志条目更准确。
命令行(CLI)操作
实时查看日志
- 模拟器场景:先通过
xcrun simctl list获取目标模拟器的ID,然后执行:
要保存到文件的话,追加重定向:xcrun simctl spawn <模拟器ID> log stream --level debug --predicate 'process == "你的App Bundle ID"'xcrun simctl spawn <模拟器ID> log stream --level debug --predicate 'process == "你的App Bundle ID"' > app_logs.txt - 真机场景:确保设备已连接且信任,使用
idevicesyslog过滤日志:idevicesyslog | grep "你的App Bundle ID"
从xcresult文件提取日志
用xcresulttool解析xcresult文件,定位App日志路径:
xcrun xcresulttool get --path ./your.xcresult --format json | jq '.actions._values[]?.actionResult.logRef?.logPath'
拿到路径后直接查看或复制该文件即可。如果没有安装jq,也可以手动解析JSON内容找到对应日志路径。
注意事项
- 检查Scheme设置:确保App的Scheme中,日志输出没有被禁用(默认是开启状态,可在
Edit Scheme > Run > Arguments里确认)。 - 真机日志需要设备已连接Mac并完成信任验证,且已安装Xcode Command Line Tools。
内容的提问来源于stack exchange,提问作者David Homes
相关产品推荐
相关产品推荐

