react-native-firebase crashlytics未显示在Firebase仪表板上

时间:2019-01-31 15:43:53

标签: android firebase react-native crashlytics google-fabric

我正在使用Firebase crashlytics。我正在做这件事导致崩溃

firebase.crashlytics().crash()

,并且在Firebase仪表板上看不到崩溃报告。崩溃是正常的,因为在android上我得到此屏幕 enter image description here

在ios上,该应用程序冻结,我在xcode上转到此页面

enter image description here

但是在firebase上的crashlytics仪表板上,没有显示崩溃。

是否有任何原因导致崩溃没有显示在crashlytics仪表板上?我正在使用react-native-firebase。我知道我正确安装了它,因为我尝试使用Java在Android上自然导致崩溃,并且能够在crashlytics上看到崩溃。

6 个答案:

答案 0 :(得分:2)

在iOS中,您需要取消与Xcode的应用链接,以便在崩溃时不会冻结。

  1. 构建应用。
  2. 在不终止模拟器的情况下停止Xcode中的项目 设备。
  3. 然后,您可以在不冻结Xcode的情况下崩溃。
  4. 重新打开应用程序,以便Firebase可以发送崩溃报告。

    有关如何执行此操作的更多详细信息,请参阅Firebase文档中显示的video tutorial

答案 1 :(得分:0)

firebase.crashlytics()。crash()无法正常工作。

当我点击按钮时,我故意制造了一个错误来模拟崩溃,并且该崩溃被捕获并立即显示在Crashlytics仪表板中。

Ej:我使用React Native,所以我将this.props.etc ...更改为this.state.etc ... 创建一个“未定义不是函数异常”。

希望有帮助!

答案 2 :(得分:0)

TL; DR:运行react-native run-android --variant=release,以使Crashlytics能够正常工作,前提是您已正确设置了所有内容(自firebase.crashlytics().crash()崩溃以来,您似乎已经拥有了它。)

请注意-为了使react-native run-android --variant=release正常运行,您需要根据以下指示为发布版本配置APK:https://facebook.github.io/react-native/docs/signed-apk-android

PROOF OF CRASHLYTICS PROPERLY REPORTING AS OF THE WRITING OF THIS ANSWER。我从来没有更高兴看到我的无崩溃用户评分下降了:)

如果您有任何疑问,请告诉我!设置签名可能会有些混乱,因此,如果您有任何疑问,请告诉我。


这是一个非常令人沮丧的问题,但是幸运的是,我已经找到了解决方案,并且与您完全一样。

看到那个大红色屏幕吗?这是React Native告诉您在开发过程中您犯了某种错误的方式。并非立即显而易见的是,该红色屏幕阻止了错误进入我们的错误报告工具。在发布模式下运行您的应用程序将阻止React Native显示该红色屏幕,并且您的错误报告工具将能够报告崩溃。


TL; DR:运行react-native run-android --variant=release,以使Crashlytics能够正常工作,前提是您已正确设置了所有内容(自firebase.crashlytics().crash()崩溃以来,您似乎已经拥有了它。)

请注意-为了使react-native run-android --variant=release正常运行,您需要根据以下指示为发布版本配置APK:https://facebook.github.io/react-native/docs/signed-apk-android

PROOF OF CRASHLYTICS PROPERLY REPORTING AS OF THE WRITING OF THIS ANSWER。我从来没有更高兴看到我的无崩溃用户评分下降了:)

如果您有任何疑问,请告诉我!设置签名可能会有些混乱,因此,如果您有任何疑问,请告诉我。


这是一个非常令人沮丧的问题,但是幸运的是,我已经找到了解决方案,并且与您完全一样。

看到那个大红色屏幕吗?这是React Native告诉您在开发过程中您犯了某种错误的方式。并非立即显而易见的是,该红色屏幕阻止了错误进入我们的错误报告工具。在发布模式下运行您的应用程序将阻止React Native显示该红色屏幕,并且您的错误报告工具将能够报告崩溃。


就像吉安(Gian)的pointed out in another answer to this question,一样,firebase.crashlytics().crash()似乎无法正常工作。但是,事实并非如此。每当您在调试模式下操作时(任何时候您都可以看到红屏,您都处于我所说的调试模式),Crashlytics和其他崩溃报告工具无法捕获本机异常,但是它们可以捕获Javascript异常。 如上所述,当您在发布模式下运行应用程序后,Crashlyitcs将能够捕获本机异常。如果您查看Crashlytics.crash(),实际上是故意用Java编写的崩溃。为了使Crashlytics实际上“听到”该应用程序由于本机异常而崩溃的信息,您必须在发布模式下运行,而不是在调试模式下运行。 很抱歉打败这匹死马,但我整个上午都在研究这个问题,觉得与其他经历和我一样命运的人分享此信息很重要。

答案 3 :(得分:0)

肯定会帮助您

  1. 转到“编辑方案”
  2. 运行->信息
  3. 将构建配置更改为发布。
  4. 现在运行该应用程序

    然后手动崩溃您的应用程序。现在,您可以检查您的崩溃分析仪表板

也尝试

  1. 启动模拟器/ iPhone
  2. 按停止
  3. 启动您的应用并强制崩溃
  4. 从模拟器/ iPhone重新启动应用程序
  5. 在crashlytics仪表板中查看崩溃报告。

答案 4 :(得分:0)

它是Firebase Teams的愚蠢之举,但解决方案是: 1-强制崩溃
2-用ide或cli启动应用程序 3-停止从IDE或CLI启动应用程序 4-像普通用户一样从微笑器启动应用程序

您将在Firebase控制台中看到崩溃。

答案 5 :(得分:0)

您的 @react-native-firebase/crashlytics 上有哪个版本的 package.json

您需要使用 2020 年 6 月之后发布的版本之一,否则它没有 Fabric 删除更改​​。例如,我必须更新为

"@react-native-firebase/app": "11.2.0",
"@react-native-firebase/crashlytics": "11.2.0",

您可以在此处查看可用版本: https://www.npmjs.com/package/@react-native-firebase/crashlytics