我正在使用Firebase crashlytics。我正在做这件事导致崩溃
firebase.crashlytics().crash()
,并且在Firebase仪表板上看不到崩溃报告。崩溃是正常的,因为在android上我得到此屏幕
在ios上,该应用程序冻结,我在xcode上转到此页面
但是在firebase上的crashlytics仪表板上,没有显示崩溃。
是否有任何原因导致崩溃没有显示在crashlytics仪表板上?我正在使用react-native-firebase。我知道我正确安装了它,因为我尝试使用Java在Android上自然导致崩溃,并且能够在crashlytics上看到崩溃。
答案 0 :(得分:2)
在iOS中,您需要取消与Xcode的应用链接,以便在崩溃时不会冻结。
重新打开应用程序,以便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)
肯定会帮助您
现在运行该应用程序
然后手动崩溃您的应用程序。现在,您可以检查您的崩溃分析仪表板
也尝试
答案 4 :(得分:0)
您将在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