是否可以在使用 Fabric / Crashlytics 启动时查看先前崩溃的堆栈跟踪?

Posted

技术标签:

【中文标题】是否可以在使用 Fabric / Crashlytics 启动时查看先前崩溃的堆栈跟踪?【英文标题】:Is it possible to see stack trace of previous crash on launch with Fabric / Crashlytics? 【发布时间】:2018-11-24 20:30:36 【问题描述】:

上下文

我的应用的大部分崩溃都发生在第三方代码中,例如广告 SDK。我们可以测试与 SDK 的集成,但无法测试用户将看到的所有内容。借助广告 SDK,它们可以远程配置并始终加载不同的广告。恶意广告或配置不当的广告似乎是一种非常常见的崩溃。

我想要完成的是检测崩溃是由第三方引起的,然后为下一次会话禁用该 SDK,从而为用户提供一种“安全模式”来运行应用程序,以便他们重新启动时不会在崩溃后遇到崩溃。我可以对所有崩溃执行此操作并关闭所有 SDK,但如果可能的话,我想更加慎重。

什么是可能的,据我所知

如果您的应用崩溃,Fabric 将通过其CrashlyticsDelegate 方法告诉您,例如- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report;.

这些方法为您提供了一个 CLSReport 对象,它告诉您您在 Crashlytics 上设置的所有信息(例如用户信息、自定义键等)。不幸的是,这个对象并没有告诉你任何关于崩溃本身的信息。

供参考:https://docs.fabric.io/apple/crashlytics/advanced-setup.html#control-submission-behavior

我的问题/功能请求

如果我可以获得崩溃的堆栈跟踪,我可以轻松找出导致崩溃的 SDK 并决定不打开那个。任何想法如何得到这个?

【问题讨论】:

【参考方案1】:

感谢您就此事与我们联系。创建此方法是为了允许选择加入崩溃报告,而不是检查堆栈跟踪。恐怕没有一种好方法可以在重新启动时获取堆栈跟踪。不过,我认为这是一个有趣的用例,会让团队知道!

【讨论】:

以上是关于是否可以在使用 Fabric / Crashlytics 启动时查看先前崩溃的堆栈跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 android 中使用 Fabric Crashlytics 将崩溃日志保存到电子邮件中?

是否可以添加或删除 Service Fabric 有状态服务命名分区

使用 Fabric.js 的交互式文本字段

Azure Service Fabric 使用情况

如何在 iOS 中使用 Crashlytics 而不使用 Fabric

是否有使用 Fabric 在 iOS 上激活 beta 测试人员的一步法?