首页 > 解决方案 > Firebase 不会报告 iOS 中的所有崩溃,而 Xcode 10 会报告所有崩溃,我们能否以某种方式跟踪 firebase 上的所有这些崩溃?

问题描述

我可以在我的 Xcode > Organizer > Crashes 选项卡中看到我在 App Store 上的实时应用程序的崩溃次数,并带有版本号。我已经在我的应用程序中成功安装了 crashlytics,它与分析配合得很好,但它不会从我的应用程序中发送我的崩溃应用程序。我在某处看到 Firebase 无法报告 NSException 类崩溃。是真的吗?我们能以某种方式跟踪 Xcode 中向 Firebase 控制台报告的每个错误吗?

Xcode:崩溃

UIKit 类

核心基础类

标签: iosxcode10firebase-crash-reporting

解决方案


我无法快速找到与 Crashlytics 对 NSExceptions 的支持相关的任何文档,除了这个。但是,一般来说,是的,Crashlytics 确实会捕获并报告未捕获的 NSException。不过,扰乱它的报告机制是相当容易的。因此,如果您使用多个报告框架或自定义 NSExceptionHandler,请小心。

尽管如此,您上面的任何崩溃似乎都不是未捕获的异常。但是,这很难说,因为您发布的屏幕截图没有足够的信息来绝对确定。

要记住的一件事是,进程内报告器存在局限性,例如 Crashlytics。其中之一是他们无法报告终止您的进程的某些操作系统级事件。从上面的第三个屏幕截图中,您可能至少会遇到其中一个。我会仔细查看崩溃报告,并准确验证正在发生的事件类型。第 3 方报告系统完全有可能无法检测到其中的一些(甚至全部)。

最后,关于将崩溃从 Apple 系统转发到 Firebase,我认为最好的办法是联系他们的支持人员。但是,我的猜测是不可能的。

快速澄清:

也许我很困惑,但我区分了操作系统级别的终止事件crash。在我看来,崩溃是通常的空解引用或其他非法操作。它总是归因于特定的库函数对,即使它可能不是该函数的错。

操作系统级别的事件是完全不同的,并且是 Apple 操作系统所独有的。一个示例是尝试修改某些操作系统拥有的文件描述符,或尝试在后台执行 OpenGL 绘图命令。这些都终止了您的应用程序,但不是直接因为函数的行为而终止。它更多的是应用程序的整体行为。


推荐阅读