我添加了一个切换到我的隐私权政策,允许用户选择不发送Crashlytics报告和Answers分析。我正在保存用户首选项中的首选项。
很容易不发送到答案;只需在检查用户首选项的if语句中包含对日志记录功能的调用。但是,一旦应用程序运行,我发现很难禁用Crashlytics报告。
我看了他们的文档,他们提到你可以让你的应用委托代表Crashlytics代表:
Crashlytics.sharedInstance().delegate = self
Fabric.with([Crashlytics.self])
然后在发送报告之前使用委托方法执行操作:
func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void)
{
// You should take some set of actions here based on knowing that a crash happened, but then make sure to call the completion handler
// If you don't call the completion handler, the SDK will not submit the crash report.
if reportsAllowed {
completionHandler(true)
}
}
然后我强制崩溃,下次我运行应用程序时,没有调用该方法(我在其中放置了一个断点)。
注意:我看到了这个答案(iOS Crashlytics - Block crash reports from being send to server),但这需要人们重启应用以进行选择加入/退出。