有没有办法以编程方式获取其应用程序的iOS崩溃报告?

时间:2017-11-16 03:15:05

标签: ios objective-c

在做了一些研究后,我尝试了这些,这就是我所拥有的:

我发现崩溃日志放在这个文件夹中:

  

的/ var /移动/库/日志/ CrashReporter始终/

有了这些信息,我试图:

使用

获取此路径下的文件
[[NSFileManager defaultManager]  contentsOfDirectoryAtPath:crashReportPath error:&error];

但我总是得到NSCocoaErrorDomain 257,这意味着我没有这个权限。

因此,我尝试使用

设置此文件夹的权限
NSFileManager *manager = [NSFileManager defaultManager];
NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithDictionary:[manager attributesOfItemAtPath:crashReportPath error:nil]];
[attributes setValue:[NSNumber numberWithShort:0777] forKey:NSFilePosixPermissions];; // chmod permissions 777
[manager setAttributes:attributes ofItemAtPath:crashReportPath error:&error];

但我总是得到NSCocoaErrorDomain 513 NSFileWriteNoPermissionError,这意味着我没有写入的权限。

没有运气,我试过这篇文章: iPhone sdk read crash files programmatically? 通过设置NSSetUncaughtExceptionHandler来处理未处理的异常,但这似乎有一些问题,因为有时应用程序可能会处于不稳定或无效的状态。

我知道有很多第三方崩溃报告插件,但大多数只生成其监控的某些信号的报告,而不是真正的崩溃报告。

有关获取真实崩溃报告的任何建议吗? 还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

我找到了在我们自己的服务器上实现崩溃报告的最佳方法。

在您的项目中实施此Crash Manager,它将为您提供最大可能的崩溃,并且您可以将崩溃报告上传到您自己的服务器。

否则您也可以不使用任何库或第三方代码。 请参阅此内容 - How can we store crash logs in iOS application