1 天后,firebase crashlytics 报告中没有数据

Posted

技术标签:

【中文标题】1 天后,firebase crashlytics 报告中没有数据【英文标题】:no data in firebase crashlytics reports after 1 day 【发布时间】:2018-05-07 14:31:07 【问题描述】:

我的 ios 应用已经运行了几个星期以来的 firebase 报告。 我在 2 天前按照官方步骤添加了 crashlytics: https://firebase.google.com/docs/crashlytics/get-started?authuser=0 事实上,似乎我所要做的就是安装这些 pod:

pod 'Fabric', '~> 1.7.2'  
pod 'Crashlytics', '~> 3.9.3'  

我还为调试和发布构建设置的调试信息格式添加了“DWARF with dSYM File”

现在当我启动应用程序时,我可以在日志中看到:

[Crashlytics] Version 3.9.3 (128)

然后我强迫手动启动的应用程序崩溃(不是使用调试器),从 xcode 重新启动应用程序后,我可以在日志中看到以下内容: [Crashlytics:Crash:Reports] 用于提交的打包报告,ID 为“9aeb11f6423b4f11b95a0f3263fc7510” 没有其他关于 crashlytics 的内容

我的问题:为什么我在 firebase crashlytics 报告中看不到任何数据?

【问题讨论】:

您是否在 Firebase 控制台中看到 Crashytics 窗口,但它是空的? firebase 中的 crashlytics 窗口只告诉我安装 sdk 它告诉我去那里:firebase.google.com/docs/crashlytics/get-started?authuser=0 使用Crashlytics.sharedInstance().crash() 强制崩溃的处理方式与真正的崩溃不同(它们在重新启动后被缓冲并报告)。如果您使用的是crash(),您可以尝试用一些导致真正崩溃的错误代码替换它,看看它是否显示在控制台中。 @Gogo123 我遇到了同样的问题。我尝试了几种讨论的方法,但都没有奏效。您能否向我们提供有关您为解决此问题所采取的步骤的更多信息? 【参考方案1】:

对于那些仍然有问题的人。检查您的 podfile 中是否还有 pod 'Firebase/Crash'。 删除旧的 Firebase 崩溃报告后,我的问题得到了解决。

【讨论】:

【参考方案2】:

您在 Firebase 中为 Crashlytics 使用了正确的 pod - 您需要 FabricCrashlytics pod。

崩溃应该显示在 Firebase 仪表板中,并按照您在 https://firebase.google.com/docs/crashlytics/get-started?authuser=0 中的说明进行操作。按照“开始之前”的步骤,确保您的项目中也有 Firebase Core。

您的 dSYM 可能丢失了,这是象征您的崩溃所必需的。查看https://firebase.google.com/docs/crashlytics/find-missing-dsym?authuser=0 以获取有关如何上传 dSYM 的说明,然后尝试另一个测试崩溃。

另外,请查看我在其他答案中的评论,以了解有关 Firebase 与 Fabric 中 Crashlytics 的说明。

【讨论】:

嗨,Alexizamerican!感谢您的回答。今天早上,Crashlytics 仪表板神奇地出现在我的 firebase 项目中。无论如何,仪表板仍然是空的。有人告诉我上传我使用您在命令行中提供的链接所做的 dSYM:“成功提交了带有 UUID 的架构 arm64 的符号”。但是仪表板仍然要求我上传 dSYM,从那时起它一直是空的,尽管我用这个虚拟代码让应用程序崩溃了几次:strcpy(0, "boom"); 我的项目中确实有 Firebase Core,并且 Firebase 运行良好。 要为您的特定应用全面调试,最好写入 Firebase 支持【参考方案3】:

仅供参考,我也有类似的经历,只是我的错误在几个小时内就开始出现。这是我遵循的两组说明,其中第二组实际上是必要的,即使它没有包含在“开始”中:

    https://firebase.google.com/docs/crashlytics/get-started https://firebase.google.com/docs/crashlytics/force-a-crash

我遵循的步骤,以防你想从列表中删除并确保你没有错过任何东西:

    将 pod 添加到 podfile。 pod 安装。 重启 xcode。 添加构建步骤。 使用 dSYM 文件将构建设置更改为 DWARF。 添加一个调用 Crashlytics.sharedInstance().crash() 的按钮。 在模拟器上运行应用,停止应用,点击重启,点击崩溃按钮。重启应用。

    代替 Crashlytics.sharedInstance().crash(),调用: 让 x:诠释? = 无 让 y = 5 + x!

    运行、停止、单击、点击按钮、崩溃。重启。

我建议您查看系统日志,但您似乎已经这样做了。我希望其中的某些部分能给你一个有用的想法。

【讨论】:

我尝试了几乎所有建议的解决方案,但均未成功。关键是在模拟器中自行运行应用程序,而不是从 Xcode 中运行。 @gnarlybracket 的评论是真正的答案。它值得 100 票!【参考方案4】:

仅在安装时检查运行脚本

【讨论】:

为什么?它没有在任何地方提及。 我创建了一个临时 ipa,但dysm 没有上传【参考方案5】:

我昨天也尝试了同样的方法,但我多次使应用程序崩溃。 Crashlytics.sharedInstance().crash()

let x: Int? = nil
let y = 5 + x!

仪表板中没有结果。

今天我尝试在另一个应用中实现 Firebase Crashlytics。但这次我在设备上而不是在模拟器上运行它。 并在 5 分钟内。我在仪表板中获得了数据。

所以我的建议是:尝试在真机上运行,​​而不是在模拟器上运行。

【讨论】:

这让我想到,一旦更多设备发送崩溃报告,Firebase 上的崩溃记录可能会更快。 我不这么认为。我的经验是,只要你使用的是真机,它们就会在你再次打开应用后不久出现

以上是关于1 天后,firebase crashlytics 报告中没有数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将映射文件上传到 Firebase Crashlytics?

Fabric Crashlytics 到 Firebase Crashlytics 迁移询问 dSYMs 文件

使用 firebase-crashlytics-gradle 的 Crashlytics 上传失败

集成 firebase crashlytics 17.0.1 时清单合并失败

Firebase crashlytics 未在 iOS 中初始化

如何使用 Firebase (Crashlytics) 记录非致命(捕获)异常