【发布时间】: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 并决定不打开那个。任何想法如何得到这个?
【问题讨论】:
标签: ios crashlytics google-fabric