上下文
我的应用程序崩溃的大部分都发生在第三方代码中,例如广告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,并决定不打开该SDK。有什么想法如何得到这个吗?
答案 0 :(得分:0)
感谢您对此提供帮助。创建此方法是为了允许选择崩溃报告,而不是检查堆栈跟踪。恐怕没有一个很好的方法可以重新启动堆栈。但是,我认为这是一个有趣的用例,它将使团队知道!