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

Posted

技术标签:

【中文标题】react-native-firebase crashlytics 未显示在 firebase 仪表板上【英文标题】:react-native-firebase crashlytics not showing up on firebase dashboard 【发布时间】:2019-06-25 03:04:59 【问题描述】:

我正在使用 firebase crashlytics。我这样做会导致崩溃

firebase.crashlytics().crash()

我没有在 firebase 仪表板上看到崩溃报告。崩溃正在运行,因为在 android 上我得到了这个屏幕

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

但在 firebase 的 crashlytics 仪表板上,崩溃并没有出现。

崩溃没有显示在 crashlytics 仪表板上有什么原因吗?我正在使用 react-native-firebase。我知道我正确安装了它,因为我尝试使用 java 在 android 上本地导致崩溃,并且我能够在 crashlytics 上看到崩溃。

【问题讨论】:

您需要等待一段时间才能显示在仪表板中,它不是实时的。通常是 24~48 小时。 我已经在这里待了一周。当我在android上通过java本地导致崩溃时,崩溃立即出现。所以我认为这不是问题 @TenzinChoklang 你找到解决办法了吗? @chgsilva 是的,对我来说 firebase.crashlytics().crash() 工作不正常,所以我没有在渲染中重新使用任何东西,所以我让它崩溃了。也尽量不要运行它的开发模式,因为据我了解开发服务器可以拦截日志,因此不会被firebase接收 @TenzinChoklang 我相信您是绝对正确的,并且在下面的回答中详细介绍了如何解决该问题。请帮我确保它是准确的:***.com/a/56021059/2441420 【参考方案1】:

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 真正“听到”应用程序由于本机异常而崩溃,您必须在发布模式下运行,而不是在调试模式下运行。 很抱歉在这里打了死马,但我整个上午都在研究这个问题,觉得有必要将这些信息分享给与我遭遇同样命运的其他人。

【讨论】:

在项目 ':app' 中找不到任务 'installRelease'。一些候选者是:'uninstallRelease'。【参考方案2】:

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

    构建应用程序。 在 Xcode 中停止项目而不终止模拟器或 设备。 那么您可以在不冻结 Xcode 的情况下崩溃。 重新打开应用,以便 Firebase 发送崩溃报告。

有关这方面的更多详细信息,请参阅 Firebase 文档中的 here。

【讨论】:

【参考方案3】:

一定能帮到你

    转到编辑方案 运行 -> 信息 将构建配置更改为发布。

    现在运行应用程序

    然后手动使您的应用崩溃。现在您可以查看您的crashlytics 仪表板

也试试这个

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

【讨论】:

是的,它确实帮助了我。谢谢!比invertase guide 工作得更好。【参考方案4】:

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

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

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

希望对你有帮助!

【讨论】:

firebase.crashlytics().crash() 对我来说运行正常。请查看我的回答,也许它也会对您有所帮助:***.com/a/56021059/2441420 我认为这归结为基于 Javascript 的错误将被 Crashlytics 捕获,但本机错误不会。由于 firebase.crashlytics().crash() 会导致本机异常,这就是为什么我们在(我假设您正在运行的)调试模式下看不到它。【参考方案5】:

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

您需要使用 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

【讨论】:

【参考方案6】:

Firebase Teams 很愚蠢,但解决方案是: 1-强制崩溃 2- 使用 ide 或 cli 启动应用程序 3-停止从 ide 或 cli 启动应用程序 4- 像普通用户一样从 smilator 启动应用程序

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

【讨论】:

以上是关于react-native-firebase crashlytics 未显示在 firebase 仪表板上的主要内容,如果未能解决你的问题,请参考以下文章

使用@react-native-firebase/messaging 收到通知后应用程序崩溃

无法在 Android 中设置 @react-native-firebase/messaging

错误:捆绑失败 - 尝试解析模块“react-native-firebase”时

iOS 无法在 react-native-firebase 中接收通知

在 iOS 上安装 react-native-firebase 的问题

@react-native-firebase/messaging : TypeError: (0 , _messaging.default)(...).registerForRemoteNotific