Firebase崩溃分析未报告崩溃问题。

5
我正在将Fabric升级到Firebase Crashlytics。我已经将Firebase和Fabric/Crashlytics pods添加到我的项目中,并添加了.plist等文件。一切似乎都正常工作,但崩溃未被报告。我使用assert(! "crashing on purpose to test crashlytics");生成崩溃,因为我看到有人提到[[Crashlytics sharedInstance] crash]对他们不起作用。有趣的是,在生成崩溃后,我所使用的版本号的“无崩溃用户”下降到0%,但崩溃数报告为0。dSYMs选项卡不列出该版本号。

enter image description here

这是在传递-FIRDebugEnabled作为参数时,调试视图中出现的崩溃: enter image description here 有任何建议吗?

如果它在开发阶段,你是否已经在架构参数中添加了-FIRDebugEnabled? - Ashwin Shrestha
是的,请查看编辑,启用调试时会在调试视图中显示。 - Nick
3个回答

2

当我从 Fabric 迁移到 Firebase Crashlytics 时,遇到了类似的问题。你不应该按照 Firebase 网站上的说明来操作。请遵循 Fabric 的说明,如 @Ashvini 所述。我假设在迁移到 Firebase 前,Crashlytics 已经正常工作。我测试过这种方法,并且对我有效。

这是一件麻烦事,因为旧项目和新项目将有不同的 Crashlytics 实现。


为什么你说要坚持下去?我正在进行迁移,旧的 Fabric 在最近一次更新后停止了报告。所以,我决定完全迁移。谷歌的文档很混乱(这是客气的说法)。 - eric

0
  • 安装后,请确保在您的AppDelegate文件中使用以下代码行初始化Fabric SDK:

    对于Objective-C: [Fabric with:@[[Crashlytics class]]];

    对于Swift: Fabric.with([Crashlytics.self])

  • 之后,通过调用Crashlytics.sharedInstance().crash()(Swift)或[[Crashlytics sharedInstance] crash](Objective-C)来强制使您的应用程序崩溃。通过在ViewController中添加任何按钮编程方式或在现有操作上调用此方法。

  • 如果在启动时附加了调试器,则Crashlytics不会捕获崩溃,因此要查看崩溃情况,您需要按照以下步骤进行操作:

    1. 从Xcode运行您的应用程序以将其安装在模拟器或设备上
    2. 按下Xcode中的停止按钮以退出它
    3. 从主屏幕启动您的应用程序以在没有调试器的情况下运行它
    4. 按下“Crash”按钮以触发崩溃
    5. 再次从Xcode运行应用程序,以便它可以将记录的崩溃交付给Crashlytics。
  • 几分钟后,您应该在Fabric仪表板上看到崩溃情况。

  • 如果您在仪表板中没有找到崩溃,则请在构建设置中仔细检查调试信息格式是否为“DWARF with dSYM File”,对于Debug和Release都是如此。

  • 确保在崩溃后启动应用程序,以便可以上传崩溃。

  • 如果几分钟后仍然看不到崩溃,请再次运行应用程序以重试崩溃传递。

  • 您可以参考此链接[https://fabric.io/kits/ios/crashlytics/install]


这是针对 Fabric Crashlytics 的。我正在使用 Firebase Crashlytics。指令是不同的。我已经按照 Firebase 的指示进行了操作:https://firebase.google.com/docs/crashlytics/get-started - Nick
那么你可以按照上述步骤进行操作,检查是否有崩溃报告呢? - Ashvini

0
确保你已经安装了最新的pods,因为Firebase文档中指出你应该使用这些pod版本。
pod 'Fabric', '~> 1.9.0'
pod 'Crashlytics', '~> 3.12.0'

这里是Firebase Crashlytics文档的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接