当前位置:  开发笔记 > IOS > 正文

有没有办法在没有连接到调试器的情况下捕获iPhone上的NSLog输出?

如何解决《有没有办法在没有连接到调试器的情况下捕获iPhone上的NSLog输出?》经验,为你挑选了3个好方法。

我正在记录一堆数据NSLog().当我的iPhone没有连接到我的开发机器并在调试器下运行时,有没有办法捕获日志数据?

例如,我可以将其重定向到文件,然后在稍后的时间点通过Xcode读取日志文件吗?我需要这样做,以便在WiFi很差的情况下测试我的应用程序,这需要我远离我的办公桌.



1> Stephan Burl..:

下面的方法将在您的应用程序的Documents文件夹中创建一个文件名"console.log",以便稍后阅读它.

在程序开头调用此方法:

- (void) redirectConsoleLogToDocumentFolder
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
  freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}

日志永远不会被删除,因此请谨慎使用.

在现场测试应用程序后,将手机重新连接到Mac,在Xcode中打开管理器.在"摘要"面板中,您可以获得手机上所有应用的列表.展开您正在调试的那个,您将看到名为"Application Data"的包.

单击其名称右侧的箭头并保存.您将以一个名为Bundle Identifier的文件夹结尾,后跟一个日期.

在此文件夹中,您将找到您的Documents文件夹,其中应包含console.log



2> Marc Novakow..:

我非常确定NSLog()调用将写入系统控制台日志,因此如果您在离线后将iPhone连接到计算机,您应该能够在XCode Organizer中查看控制台日志.唯一需要注意的是控制台日志的大小有限,因此如果您进行大量日志记录,可能会导致较旧的条目被删除.



3> Chris R. Don..:

App Store中还有一个Console应用程序,但它仅适用于iOS 6及更早版本.

当iOS 7问世时,它有效地停止了工作.(它现在只能读取自己的控制台日志,而不是整个系统的日志.)


在这种情况下,我真诚的道歉!
其实我不是这个软件的作者,虽然你是对的我们有相同的名字.
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有