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

问题描述 投票:3回答:1

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

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

ios crash-reports
1个回答
7
投票

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

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

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

同样重要的是要注意,拥有特定的崩溃报告库不足以获得良好的崩溃报告,因为符号化过程需要能够在崩溃报告中转换信息,以指向正确的类名,方法名,文件堆栈跟踪中每个帧的名称和行号。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.