本页面提供了问题排查帮助,并解答了有关使用 Crashlytics 的常见问题。如果您找不到想要的内容或需要其他帮助,请与 Firebase 支持团队联系。
常规问题排查/常见问题解答
没有看到“未遇到崩溃问题”指标和/或“疾速崩溃提醒”
如果您没有看到“未遇到崩溃问题”指标(例如未遇到崩溃问题的用户数和未发生崩溃问题的活跃日)和/或疾速崩溃提醒,请确保您使用的是
Crashlytics SDK v10.8.0+。
没有看到面包屑导航日志
如果您没有看到路径日志,我们建议您检查应用的 Google Analytics 配置。请确保您符合以下要求:
dSYM 缺失/未上传
如需上传项目的 dSYM 并获取详细输出结果,请检查以下各项:
确保项目的 build 阶段包含 Crashlytics 运行脚本,该脚本允许 Xcode 在构建时上传项目的 dSYM(如需了解添加该脚本的说明,请参阅初始化 Crashlytics)。更新项目后,强制造成一次崩溃并确认 Crashlytics 信息中心内显示此次崩溃。
如果您在 Firebase 控制台中看到“dSYM 缺失”提醒,请检查 Xcode,确保它针对构建正确生成了 dSYM。
如果 Xcode 正确生成了 dSYM,但您仍看到 dSYM 缺失,这很可能是因为运行脚本工具在上传 dSYM 时卡住了。在这种情况下,请尝试以下各项操作:
请确保您使用的是最新版 Crashlytics。
手动上传缺失的 dSYM 文件:
如果您仍然看到 dSYM 缺失或者上传仍然失败,请与 Firebase 支持团队联系,并务必附上您的日志。
崩溃的符号化解析不正确
如果您的堆栈轨迹的符号化解析似乎不正确,请检查以下各项:
如果来自应用库的帧缺少对应用代码的引用,请确保未设置 -fomit-frame-pointer
编译标志。
如果您看到多个针对应用库的 (Missing)
框架,请检查 Firebase 控制台的“Crashlytics dSYMs”dSYMs标签页中是否有可选的 dSYM 被列为缺失(针对受影响的应用版本)。如果是这样,请按照本页面上 dSYM 缺失/未上传常见问题解答中的“dSYM 缺失提醒”问题排查步骤进行操作。请注意,上传这些 dSYM 并不会对已发生的崩溃进行符号化解析,但这有助于确保对今后的崩溃进行符号化解析。
谁可以查看、撰写和删除问题的备注?
借助备注功能,项目成员可以就相关疑问或状态更新等特定问题进行备注。
项目成员发布备注时,系统会标注其 Google 账号的电子邮件地址。此电子邮件地址将与备注一起向有权访问备注的所有项目成员显示。
下文介绍了查看、撰写和删除备注所需的权限:
谁可以查看、撰写和删除问题的备注?
借助备注功能,项目成员可以就相关疑问或状态更新等特定问题进行备注。
项目成员发布备注时,系统会标注其 Google 账号的电子邮件地址。此电子邮件地址将与备注一起向有权访问备注的所有项目成员显示。
下文介绍了查看、撰写和删除备注所需的权限:
集成
应用还使用了 Google Mobile Ads SDK,但无法收到崩溃信息
如果您的项目同时使用 Crashlytics 和 Google Mobile Ads SDK,这可能是由于在注册异常处理程序时,崩溃报告工具进行了干扰。如需解决此问题,请调用 disableSDKCrashReporting
,在 Mobile Ads SDK 中关闭崩溃报告。
我的 BigQuery 数据集位于何处?
无论您的 Firebase 项目位于何处,将 Crashlytics 关联到 BigQuery 后,您创建的新数据集都会自动采用美国位置。
回归问题
什么是回归问题?
如果您之前修复并关闭了某个问题,但 Crashlytics 收到了一个该问题再次发生的新报告,则表明该问题已回归。Crashlytics 会自动重新打开这些回归问题,以便您可以根据自己的应用需求采取相应措施。
以下示例场景说明了 Crashlytics 如何将问题归类为回归问题:
- Crashlytics 首次收到有关崩溃“A”的崩溃报告。Crashlytics 会为该崩溃打开相应的问题(问题“A”)。
- 您快速修复此 bug,关闭问题“A”,然后发布应用的新版本。
- 在您关闭问题后,Crashlytics 收到关于问题“A”的另一份报告。
- 如果报告来自 Crashlytics 在您关闭问题时知道的应用版本(这意味着该版本已针对任何崩溃发送了崩溃报告),则 Crashlytics 不会将问题视为回归。此问题将保持关闭状态。
- 如果报告来自 Crashlytics 在您关闭问题时不知道的应用版本(这意味着该版本从未针对任何崩溃发送过崩溃报告),则 Crashlytics 会将该问题视为回归问题,并将其重新打开。
当某个问题回归时,我们会发送回归检测提醒,并向该问题添加回归信号,让您知道 Crashlytics 已经重新打开了问题。如果您不希望由于回归算法而要重新打开问题,请“忽略”问题,而不是将其关闭。
为什么我看到旧版应用的回归问题?
如果报告来自在您关闭问题时从未发送过任何崩溃报告的旧应用版本,则 Crashlytics 会认为问题已回归,并会重新打开问题。
在以下情况下,可能会出现这种情形:您已修复了一个 bug,并发布了应用的新版本,但仍有一些用户使用的是旧版本,而且未进行 bug 修复。如果偶然情况下,当您关闭问题时,其中一个旧版本根本没有发送过任何崩溃报告,并且这些用户开始遇到 bug,那么这些崩溃报告将触发回归问题。
如果您不希望由于回归算法而要重新打开问题,请“忽略”问题,而不是将其关闭。