我正在使用 NSLog()
记录大量数据。当我的 iPhone 未连接到我的开发机器并在调试器下运行时,有没有办法捕获日志数据?
例如,我可以将其重定向到一个文件,然后稍后通过 Xcode 读回日志文件吗?我需要这样做,以便在 WiFi 信号较差时测试我的应用程序,这需要我远离办公 table 。
最佳答案
下面的方法将在应用程序的 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 标识符名称,后跟日期。
在此文件夹中,您将找到文档文件夹,其中应包含 console.log
关于iphone - 有没有办法在未连接到调试器时捕获 iPhone 上 NSLog 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429205/