iphone - 有没有办法在未连接到调试器时捕获 iPhone 上 NSLog 的输出?

标签 iphone cocoa-touch nslog

我正在使用 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/

相关文章:

iphone - 添加 CAGradientLayer 子层时,UITableViewCell 不会拾取 UITableViewCellSelectionStyleBlue

iphone - 是否有一种流行的开源 NSLog 替代品可以处理仅在 DEBUG 和不同日志级别下启用?

ios:NSLog 显示十进制值

iphone - Xcode 4.2 中烦人的代码签名错误/警告

iphone - 如何在 subview 中访问ViewController的数据?

iOS - TapGestureRecognizer - 点击适用于整个屏幕而不是 View

iphone - 删除 NSLog 会破坏编译器

iphone - iOS Segue ViewController 缓存

iphone - 如果我长时间按退格键,UITextField shouldChangeCharactersInRange 将停止调用

ios - 为什么 UIPickerView 在我第一次更改其父 viewController 上的设备方向时不会调整大小?