我如何从iOS模拟器获取控制台日志?
我想看看在iOS模拟器中发生了什么,如果我不在Xcode中testing应用程序。
例如,如果我在Safari模拟器中打开链接,请查看控制台中发生了什么,或者如果我安装了Web应用程序,请参阅我在控制台中按下的链接。
我该怎么做?
我想在Xcode或Terminal中看到它,但是如果我需要使用另一个软件,这不是问题。
iOS模拟器>菜单栏>debugging>打开系统日志
老方法:
iOS模拟器将其日志直接打印到标准输出,因此您可以看到与系统日志混合的日志。
打开terminal并键入: tail -f /var/log/system.log
然后运行模拟器。
编辑:
现在你可以在自己的文件夹中访问模拟器日志了: ~/Library/Logs/iOS Simulator/<sim-version>/system.log
您可以使用Console.app来查看这个,或者只是做一个尾巴(例如iOS 7.0.3 64位):
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
编辑2:
它们现在位于~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
您可以通过桌面Safari查看iOS模拟器的控制台。 这与您使用桌面Safari查看物理iOS设备的控制台的方式类似。
每当模拟器运行并打开一个网页时,桌面Safari中的“开发”菜单下会有一个选项,让您可以看到iOS模拟器控制台:
开发 – > iPhone模拟器 – > 网站名称
iOS 8和iOS 9
在iOS 8和iOS 9下,此位置现在是:
~/Library/Logs/CoreSimulator/<DEVICE_CODE>
所以,以下将起作用:
tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log
DEVICE_CODE
值可以通过以下控制台命令find:
instruments -s devices
模拟器中有一个选项可以打开console
Debug > Open System Log
或者使用
keyboard shortcut: ⌘/
如果您使用的是Swift ,请记住println
只会打印到debugging日志(出现在xCode的debugging区域)。 如果你想打印到system.log,你必须像以前一样使用NSLog
。
然后你可以通过菜单Debug> Open System Log …(cmd + /)来查看模拟器日志。
尾巴/var/log/system.log
没有为我工作。 我通过使用Console.app
find了我的日志。 他们在
~/Library/Logs/iOS Simulator/{version}/system.log
XCode> 6.0 AND iOS> 8.0如果您的XCode版本> 8.0,则以下脚本可用
我使用下面的小脚本将模拟器日志拖放到系统控制台上。
#!/bin/sh sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'` tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log
您可以传入Grep中使用的模拟器types作为参数。 正如在上面的post中提到的,有simctl和instruments命令来查看可用的模拟器types,这取决于Xcode版本。 查看可用设备/模拟器的列表。
xcrun instruments -s
要么
xcrun simctl list
现在,您可以将设备代码或模拟器types作为parameter passing给脚本,并将grep中的“iPhone 6(8.2 Simulator)”replace为$ 1
你不应该依赖instruments -s
。 从命令行使用模拟器的官方支持的工具是xcrun simctl
。
可以使用xcrun simctl getenv booted SIMULATOR_LOG_ROOT
find设备的日志目录。 即使位置发生变化,这也是正确的。
现在,事情正在向os_log
,在Mac主机上打开Console.app更为简单。 启动模拟器应该显示为左侧的日志源,就像物理设备一样。 您也可以在引导的模拟器中运行日志命令:
# os_log equivalent of tail -f xcrun simctl spawn booted log stream --level=debug # filter log output xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"' xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info' # a log dump that Console.app can open xcrun simctl spawn booted log collect # open location where log collect will write the dump cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`
如果您想在模拟器中使用带有网页的Safari开发工具(包括JS控制台),请执行以下操作 :启动其中一个模拟器,打开Safari,然后在Mac上进入Safari,并在菜单中看到Simulator。
你可以在模拟器中打开一个URL,把它从Safari的地址栏拖放到Simulator窗口中。 你也可以使用xcrun simctl openurl booted <url>
。
我可以通过iOS模拟器直接打开日志: Debug -> Open System Log...
不知道什么时候引入,所以它可能不适用于早期版本。