Firebase crashlytics 没有记录所有崩溃

Firebase crashlytics not registering all crashes

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

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

Crashlytics 将跟踪两种类型的崩溃:致命和 non-fatal。在大多数情况下,iOS 和 Android 上的崩溃是致命的崩溃(整个 app/game 崩溃并且用户正在查看他们的 phone 的主屏幕)。在 Unity 上,Crashlytics 实际上注册了一个 LogCallback and reports uncaught exceptions. Typically these do not fully crash your game, but still indicate bad and crashy behaviour. I've written a two part 系列,介绍不同的崩溃情况。

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

第二个答案有点难。崩溃 可能 发生在本机代码中(我通常会强制堆栈溢出来模拟这个或 运行 Unity 内存不足,但有一个 ForceCrash call I've seen developers using recently). How this gets reported gets a little hairy, partially because C++ is not officially supported by Crashlytics

根据我的经验,这些往往表现为致命的崩溃,但标签很差。在 iOS 上,它们看起来是符号化的,但往往 select 显示堆栈帧的错误部分。在 Android 上,我倾向于只看到 non-symbolicated 崩溃报告(看起来可能是 运行 到 ndk-stack)。

如果您在查看 non-fatal 崩溃时没有看到您的崩溃,请尝试仅查看致命崩溃并查看是否看到任何看起来像原始崩溃日志的内容。从技术上讲,Crashlytics 可以对 iOS and Android, and the team is aware that there are issues. If this represents your experience, I'd recommend filing an issue on GitHub or with Firebase Support 上的原生符号进行符号化,以查看您的设置是否存在问题,或者这是否是另一个需要跟踪的用例。