有没有办法查看实时控制台日志以实时方式查看NSLog和其他调试消息,例如adb logcat?
有没有办法查看实时控制台日志以实时方式查看NSLog和其他调试消息,例如adb logcat?
Answers:
Apple在技术问答QA1747 调试针对Xcode 6的已部署iOS应用程序中记录的解决方案是:
print
语句不进入日志,仅进入stdout
。使用NSLog
代替。或者也可以stdout
使用一些添加的代码重定向到文件。会记录崩溃,并可以使用“查看设备日志”按钮进行访问。
编辑:请使用@cbowns解决方案-deviceconsole与iOS9兼容并且更易于使用。
这是一个开源程序,可在终端中显示iDevice的系统日志(类似于tail -F的方式)。无需越狱,输出是完全可复制的,因此您可以筛选以仅查看程序的输出。此解决方案特别有用的是,您可以查看日志,无论该应用程序是否从XCode以调试模式启动。
这是如何做:
从我的github帐户(https://github.com/benvium/libimobiledevice-macosx/zipball/master)中获取Mac OS X的libimobiledevice二进制文件
请按照此处的安装说明进行操作:https : //github.com/benvium/libimobiledevice-macosx/blob/master/README.md
连接设备,打开Terminal.app并输入:
idevicesyslog
向上弹出实时显示设备的系统日志。
通过将其作为控制台应用程序,您可以使用unix命令(例如grep)过滤日志
例如,查看来自特定应用程序的所有日志消息:
idevicesyslog | grep myappname
取自我的博客,网址为http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
两种选择:
libimobiledevice可通过自制程序安装,并且效果很好。其idevicesyslog
工具的工作方式类似于deviceconsole
(如下),并且支持无线查看设备的系统日志(!)。
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
通过USB连接的设备或在本地无线网络上可用的设备。
从2013年开始:rpetrich的deviceconsole比上面的ideviceconsole少了很多麻烦的解决方案。我的前叉可以在Xcode 5 中立即构建和运行,并且Build操作将安装二进制文件以便/usr/local/bin
于使用。
作为其他有用的信息,我以以下样式使用它,可以轻松在外壳历史记录中找到所需的设备,并删除打印出来的不必要>
行deviceconsole
。
deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
libimobiledevice
。(有线和无线日志查看在Mac上的10.11和iOS 10.2上的iPhone都可以使用)
brew install --HEAD libimobiledevice
。为我工作。
这可能是您要寻找的: Xcode Organizer
设备>终端输出在iPhone配置应用程序上
您有三种选择:
因此,要获得2º,您只需要从Cydia安装syslogd和OpenSSH,请在启动syslogd之后重新启动。现在只需打开到设备的ssh会话(通过Windows上的终端或腻子),然后键入“ tail -f / var / log / syslog”。无线实时系统日志随您去。
如果您想尝试3º只是在线搜索“ dup2”,这是一个系统调用。
要在Mac上的Safari中查看iOS设备的控制台(显然只有Mac):
Safari的Inspector将出现,其中显示适用于iOS设备的控制台。
作为替代方案,您可以使用类似ticker-log 的屏幕上日志记录工具来查看日志,而无需(方便)访问控制台。
Utilities/Console.app
吗?