首页 > 解决方案 > react-native-firebase Crashlytics 不报告崩溃

问题描述

我在我的应用程序中使用 Fabric Crashlytics 已经有一段时间了,使用react-native-fabric. 现在我想使用react-native-firebase执行 JS 堆栈映射的实现。去年,我将我的应用程序(Release 和 Staging 构建、android 和 iOS)迁移到了我的 Firebase 控制台,因此我能够在该控制台和 Fabric 仪表板上看到我的崩溃报告。

我已按照以下步骤进行迁移,当我执行 crashlytics().crash() 并重新启动应用程序时,崩溃报告不会出现在 iOS 或 android 上的任何仪表板上。首先,我像这样删除了 react-native-fabric。

  1. 删除 app/build.gradle、app/settings.gradle 和 MainApplication.java 中对结构的引用
  2. 已删除android/app/fabric.properties
  3. 从中移除 ApiKeyAndroidManifest.xml
  4. 从 iOS 构建中移除 Crashlytics 和 Fabric 框架。
  5. 删除结构运行脚本构建阶段
  6. 删除 AppDelegate.m 中对结构的引用
  7. yarn remove react-native-fabric 并从 JS 代码中的 react-native-fabric 中删除导入。
  8. 从 Info.plist 中删除 Fabric API 密钥(直到后来我才发现这样做的建议)
  9. 删除 Fabric.app 和相关文件。

(上述某些更改是由 自动完成的react-native unlink react-native-fabric。)

然后我将我的应用程序从 RN 0.59 升级到了 0.61.4。

然后我react-native-firefase根据此处的说明安装(v 6.0):https ://invertase.io/oss/react-native-firebase/v6/crashlytics/quick-start

现在,当我调用 crashlytics().crash() 时,应用程序会崩溃,但报告不会出现在 Fabric 或 Firebase 控制台中。

我查看了其他一些 SO 问题,例如Firebase crashlytics not reporting crash,并且无法找到任何适用的提示,因为我使用的是react-native-firebaseCrashlytics 库而不是直接进行本机开发。

标签: react-native-firebase

解决方案


看来要做到这一点可能是不可能的或非常困难的。在从 fabric page 迁移的 firebase 上,它说:

对于您关联的应用,您的 Crashlytics 数据现在会显示在 Firebase Crashlytics 信息中心(在 Firebase 控制台中)。链接过程不涉及对 Crashlytics SDK 或 Fabric API 密钥的任何更改。请注意,在接下来的几个月中,我们将发布适用于 iOS 和 Android 的特定于 Firebase 的 Crashlytics SDK,并提供进一步的升级说明。因此,目前,如果您迁移了 iOS 和 Android 应用程序:

  • 不要更改您使用 Crashlytics SDK 的方式,因为 iOS 和 Android SDK 没有改变。

  • 不要更改或删除您的 Fabric API 密钥。

对我来说,这意味着 Fabric 和 Firebase SDK 不兼容。

此外,在 Firebase 控制台的设置/集成页面上,有一个“取消链接 Fabric App”按钮。单击此按钮可能会使转换成功,但我不敢这样做,因为我不确定会发生什么,而且我仍然依赖react-native-fabric于生产中的旧崩溃报告。


推荐阅读