Crashlytics sendUnsentReports() 即使与 FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(fal



我需要在错误发生后立即发送报告,但Crashlytics只在我重新启动应用程序时发送报告。

我试图遵循文档并以不同的方式实现这一点,但每次似乎都会导致相同的结果,即Crashlytics只在我重新启动应用程序后发送报告。我知道这是预期的行为,但对于我的应用程序来说,这完全没有用。


main.dart

...
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(false);
...

AndroidManifest.xml

...
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
...

firebase_util.dart

...
await FirebaseCrashlytics.instance
.recordError(error, stackTrace, printDetails: true)
.then((value) async => await FirebaseCrashlytics.instance.sendUnsentReports());
...

我做错了什么?

如果您使用的是最新的Crashlytics SDK版本,Android SDK会在崩溃发生后尝试发送崩溃报告。

但不幸的是,在iOS中,这种情况只有在重新启动应用程序后才会发生。据我所知,这是为了避免在发出网络请求时应用程序被关闭的问题。

关于setCrashlyticsCollectionEnabled(false(,这是为了让用户更好地控制他们的数据。您可以在清单(适用于Android(或Info.plist(适用于iOS(中将其设置为false,以防止Crashlytics发送崩溃数据。这解释了为什么在调用时没有发送崩溃

FirebaseCrashlytics.instance.sendUnsentReports()

然后你可以征求用户的同意,如果他们同意了,你可以用将这个值设置为true

FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true)

完成此操作后,Crashlytics将开始收集和发送崩溃报告。但它将遵循上面的过程。

相关内容

  • 没有找到相关文章

最新更新