以程序员方式阅读iOS app .crash文件?

And*_*ree 3 crash-reports ios

根据我的理解,当iOS应用程序崩溃时,系统会创建一个可以通过XCode访问的.crash文件.是否可以从应用程序本身以编程方式读取此文件?

我的目的是将此崩溃日志(如果存在)发送到服务器,以便我们可以在无需用户干预的情况下分析日志.有几个崩溃报告服务(例如bugsense,crashlytics)能够做到这一点,所以我假设应该可以实现自定义实现?

干杯!

Ker*_*rni 7

无法从您的应用中读取iOS系统生成的崩溃报告.原因是您的应用程序在沙箱中运行,并且无法访问其沙箱之外的任何内容.因此,如果您尝试从不在沙箱中的路径读取文件或目录,则不会获得任何数据.

获取崩溃报告的唯一选择是在代码中添加一个库,该库能够检测崩溃,创建报告并以某种方式发送它们.大多数人将其发送到服务器,因为通过电子邮件获取数千个崩溃报告效率不高,还考虑了获取类,方法和行号信息所需的符号化过程.

PLCrashReporter是一种流行且安全的开源库.大多数服务使用这一个,少数编写自己的功能来实现功能.有一个开源应用程序可用于比较不同的崩溃报告服务和名为CrashProbe的图书馆(免责声明:我是其开发人员之一).该项目在http://crashprobe.com上有一个网站,其中包含已经比较的服务列表.

同样重要的是要注意的,具有特定崩溃报告库是不够的,良好的崩溃报告,因为symbolication过程需要能够翻译的崩溃报告信息给你指出正确的类名,方法名,文件堆栈跟踪中每个帧的名称和行号.

我建议比较看起来符合您需求的服务(也使用CrashProbe),然后决定哪一个最适合您的用例.

我不会推荐任何服务,因为根据stackoverflow指南不允许这样做.