【问题标题】:Firebase crashlytics not registering all crashesFirebase crashlytics 未记录所有崩溃
【发布时间】:2020-09-16 12:32:55
【问题描述】:

我已经在我的统一游戏中实施了 firebase crashlytics 来接收崩溃报告,并且它正在工作一半燃料。它报告了一些崩溃,但由于某种原因,它没有报告所有崩溃。我收到很多用户报告在游戏的同一部分崩溃,但我无法重现问题或在 crashlytics 报告中找到它。

为了接收所有的崩溃,我还能做些什么吗?

【问题讨论】:

    标签: firebase unity3d crashlytics


    【解决方案1】:

    Crashlytics 将跟踪两种类型的崩溃:致命和非致命。在大多数情况下,iOS 和 Android 上的崩溃是致命的崩溃(整个应用程序/游戏崩溃并且用户正在查看手机的主屏幕)。在 Unity 上,Crashlytics 实际上注册了一个 LogCallback 并报告未捕获的异常。通常,这些不会使您的游戏完全崩溃,但仍表示不良和崩溃的行为。我已经写了一个twopart 系列关于那里不同的崩溃情况。

    所以第一个(简单的)答案是确保您显示“非致命”崩溃。

    第二个答案有点困难。本机代码中可能会发生崩溃可能(我通常会强制堆栈溢出来模拟这种情况或在内存不足的情况下运行 Unity,但我最近看到开发人员使用了 ForceCrash 调用)。报道的方式有点棘手,部分原因是C++ is not officially supported by Crashlytics

    根据我的经验,这些往往显示为致命的崩溃,但标记不充分。在 iOS 上,它们看起来是象征性的,但往往会选择堆栈帧的错误部分来显示。在 Android 上,我倾向于只看到一个非符号化的崩溃报告(看起来可以通过 ndk-stack 运行)。

    如果您在查看非致命崩溃时没有看到您的崩溃,请尝试仅查看致命崩溃并查看您是否看到任何看起来像原始崩溃日志的内容。从技术上讲,Crashlytics 可以在 iOSAndroid 上表示原生符号,团队是 aware that there are issues。如果这代表了您的经验,我建议您在 GitHubFirebase Support 上提交问题,以查看您的设置是否存在问题,或者这是需要跟踪的另一个用例。

    【讨论】:

    • 感谢您的回答,我可以看到我的非致命崩溃,所以这不是问题。问题伴随着致命的崩溃。我有一个来自用户的视频,该视频发生了致命的崩溃,但 firebase crashlytics 显示当天 100% 的免费崩溃用户。所以问题是我没有遇到所有致命的崩溃。对于符号没有问题,因为我可以统一解决它们。无论如何,我没有收到所有致命的崩溃吗?
    • 在这种情况下,这听起来像是 Crashlytics 中的一个错误,我建议关注我列出的支持链接之一。直接转到 Firebase 支持,有人可能会查看您的项目并查看是否存在配置错误(如有必要)。访问 GitHub,工程师可能会更快地看到它,但如果有一些特定于项目的东西,他们能提供的帮助就更少了。
    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2020-01-03
    • 2019-05-28
    相关资源
    最近更新 更多