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 - 您需要 Fabric
和 Crashlytics
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 时清单合并失败