尽管调试器变得越来越好用,但有时候查找应用程序中发生的情况最好的方法仍然是使用经典的
有没有办法在设备本身上检查控制台日志?我猜答案是“不行,除非您越狱”(如果我没记错,在越狱领域至少有一两个终端应用程序可以用来做这种事情)。不幸的是,对我来说越狱不是一个选择。
NSLog
。当您连接到计算机时,这很容易实现;Xcode会弹出Log Viewer面板,然后您就可以查看了。但是,当您远离桌子时(例如测试CoreLocation功能时),这样做就不那么容易了。当然,您可以打开Xcode并在测试运行结束后立即检查设备组织器的控制台部分,但这样您就必须等待,并且在您能够返回查看日志之前,您可能已经忘记了应用程序出了什么问题;而且很可能在您能够这样做之前,您正在寻找的日志消息已经消失了。有没有办法在设备本身上检查控制台日志?我猜答案是“不行,除非您越狱”(如果我没记错,在越狱领域至少有一两个终端应用程序可以用来做这种事情)。不幸的是,对我来说越狱不是一个选择。
另外,是否有一种Objective-C框架、库或其他工具可以处理日志收集和设备上的显示?理想情况下,这将以NSLog
的替代品形式出现,我只需进行搜索和替换,并将所有NSLog
的出现更改为SomeFancyPantsLoggingTool
或其他内容即可。
一个很好的例子是播客客户端Downcast。如果你点击“更多”选项卡,然后点击屏幕底部的版本号字符串,会出现一个新视图,其中包含累积日志消息的可滚动视图。它甚至有一种简单的方法将这些日志发送到支持电子邮件地址。
NSLog()
。你应该连接到 syslog。man syslog
和man syslogd
是你的朋友,还可以尝试连接到lockdownd
并从中获取系统日志(尽管这是一个私有API,所以在提交到AppStore之前请将其#ifdef
掉)。 - user529758