从 Crashlytics 3.0.0 开始,实现用户提示是应用程序的责任

As of Crashlytics 3.0.0, implementing a user prompt is the application's responsibility

我收到以下警告:

[Crashlytics:Crash] WARNING: the user prompt feature is enabled. As of Crashlytics 3.0.0, implementing a user prompt is the application's responsibility. See Crashlytics.h's notes about -crashlyticsDidDetectReportForLastExecution:completionHandler:

当我 运行 使用 Xcode 时出现在我的应用程序日志中。看起来我使用的 Crashlytics 版本是 3.0.8(来自 Crashlytics.framework 中的 info.plist 文件)。

这是 Crashlytics.h 文件中的相关文档:

/**
 *
 * Called when a Crashlytics instance has determined that the last execution of the
 * application ended in a crash.  This is called synchronously on Crashlytics
 * initialization. Your delegate must invoke the completionHandler, but does not need to do so 
 * synchronously, or even on the main thread. Invoking completionHandler with NO will cause the
 * detected report to be deleted and not submitted to Crashlytics. This is useful for
 * implementing permission prompts, or other more-complex forms of logic around submitting crashes.
 *
 * Failure to invoke the completionHandler will prevent submissions from being reported. Watch out.
 * 
 * Just implementing this delegate method will disable all forms of synchronous report submission. This can
 * impact the reliability of reporting crashes very early in application launch.
 *
 **/

- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL submit))completionHandler;

从警告来看,我的应用似乎不会收到通常的 "Send Crash Report?" 提示。但是,我确实在崩溃后得到了这个。也就是我好像没有必要去实现这个UI。那么,是什么给了?这个警告真的是一个错误的警告,我们必须在将来为这个发送崩溃报告提示做我们自己的 UI 吗?

我也看过文档 https://dev.twitter.com/crashlytics/ioshttp://support.crashlytics.com/knowledgebase/topics/14721-crashlytics-sdk-for-ios 但找不到任何谈论自 3.0.0 以来的变化。

想法?

这里是来自 Fabric 的迈克。

在 SDK 3.0 中,我们对如何处理崩溃报告提交添加了更细粒度的控制,以便您和其他开发人员可以根据需要显示或不显示警报。如果您想实现自己的对话框,请关闭 Fabric 仪表板中的隐私对话框,然后使用提供的调用来执行此操作。

如果您想继续使用 Fabric 提供的隐私对话框,您可以,但我鼓励您创建一个新的,因为它更灵活并且可以根据您的应用程序 UI 进行自定义.