无法在 Crashlytics/fabric 中获取崩溃报告。显示错误:“看起来我们缺少 dSYM 来处理以下版本的崩溃。”

Posted

技术标签:

【中文标题】无法在 Crashlytics/fabric 中获取崩溃报告。显示错误:“看起来我们缺少 dSYM 来处理以下版本的崩溃。”【英文标题】:Could not get crash report in Crashlytics / fabric. Showing error : "It looks like we are missing dSYMs to process crashes for the versions below." 【发布时间】:2015-12-30 15:31:10 【问题描述】:

在我的 ios 应用程序的 fabric/crashlytics 中没有生成崩溃报告。织物仪表板上显示错误(如屏幕截图所示)。

按照fabric 的指示,我尝试在安装fabric mac 应用程序的机器上搜索给定的UUID。(我在其中创建应用程序的构建。)但无法获得任何结果。 还尝试使用带有命令的终端搜索:mdfind "com_apple_xcode_dsym_uuids == <UUID>”(如在:http://support.crashlytics.com/knowledgebase/articles/376834-missing-dsyms 中给出)但也无法在那里获得任何结果。

以前有人遇到过这个问题吗?有什么办法可以解决这个问题?

【问题讨论】:

那么您是否在 Build Phases 中运行脚本,该脚本会在构建期间将 dsyms 提交给 Crashlytics? 是的。我在构建阶段运行一个 shell 脚本,该脚本在集成结构时被复制.. 这可能对某人有帮助 - All you need to know 【参考方案1】:

在我的应用程序中成功完成 Fabric 设置后,同样的问题,我尝试了所有解决方案,但对我有用的是:

    进入项目和目标的项目设置,将Debug Information Format设置为DWARF with dSYM File

设置当前配置

【讨论】:

如果我通过 CocoaPods 添加 Crashlytics,我是否也必须在 pods.xcodeproj 设置中进行设置?【参考方案2】:

您可以通过为特定版本的构建生成 dSYMs 文件并将其上传到 crashlytics 来获取崩溃报告。

按照以下步骤生成 dSYMs 文件。

    在 Xcode 中转到 Window Menu -> Organizer

    选择正确的构建版本并点击右侧面板上的按钮“下载调试符号”

    点击正确的构建版本并选择在Finder中显示。

    选择.xcarchieve 文件,然后右键单击该文件并单击显示包内容

    然后转到**dSYMs文件夹**并选择.dSYM文件并压缩该文件

    现在最后一步是在面料上上传压缩文件

然后你可以得到构建的崩溃报告。

【讨论】:

我有 3 个存档,其构建版本由 crashlytics 指定。我尝试上传所有 3 个压缩的 dSYM,在上传每个后,它显示一条消息“dSYM 已成功上传!”。但是错误仍然存​​在,即使在刷新页面之后.. :-( 我也遇到了同样的问题。我已经通过注销并登录到 fabric.try it.May be help it. 您从哪里注销和登录? mac 应用程序或网站? 尝试注销 - 上传后也登录。还是行不通。错误仍然存​​在.. :-( 在执行第 2 步之前,在 Organizer 中选择版本,然后单击右侧的“下载 dSYM...”按钮。【参考方案3】:

我终于得到了答案:

我进入 iTunes Connect > 我的应用程序 > 活动 > 单击构建缺少的 dSYM > 下载 dSYM。下载后在末尾添加 .zip 扩展名(不确定为什么 .zip 没有被苹果显示)并且能够解压缩它。在这个文件夹中,我能够找到fabric 请求的丢失的dSYM,然后将其上传到fabric。

处理 dSYM 需要几分钟时间。就我而言,重新符号化崩溃报告需要 24 小时。

【讨论】:

我们正在处理上传的 dSYM。请过几分钟再回来查看状态。【参考方案4】:

考虑答案:

    在 Xcode 中转到 Window Menu -> Organizer

现在在管理器中,选择版本,然后单击右侧的“下载 dSYM...”按钮。

    点击正确的构建版本并选择在Finder中显示。

    选择.xcarchieve 文件,然后右键单击该文件并单击显示包内容

    然后转到**dSYMs文件夹**并选择.dSYM文件并压缩该文件

记得压缩合适的.dSYM文件,例如:

    现在最后一步是在结构上上传压缩文件

上传结果如下:

如果您的计算机上没有构建,您可以直接从 itunesconnect 下载 dSYMS:

【讨论】:

【参考方案5】:

对我来说,当我在上传到 AppStore 或导出文件时取消选中 Include bitcode,问题就解决了。

希望这将在下一次 Crashlytics 更新中得到解决。

【讨论】:

超级...我试图从连续 3 个日夜中找出错误的原因。你救了我的命。非常感谢。【参考方案6】:

不要归档 dSYMs 文件夹打开文件夹然后归档您的 appname.app.dSYMs 然后将其汇总

如果您在调试中报告崩溃报告,请在调试中使用带有 dSYM 文件的调试信息格式 DWARF

【讨论】:

【参考方案7】:

如果你没有生成 dSYMs 文件,那么去:

Xcode 中的组织者。 选择在 iTunes 上上传的正确版本,右键单击该版本显示选项包内容。 转到 dSYMs 文件夹并选择 .dSYM 文件将其上传到 Fabric 上,然后您将获得崩溃报告。 更多详情请点击此链接>>>>>https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#upload-dsym

【讨论】:

【参考方案8】:

另一个非常重要的步骤;单击“下载调试符号”。执行此步骤后,我发现了丢失的 UUID。

【讨论】:

【参考方案9】:

解决“缺少 dSYM”问题的官方指南已由 firebase 发布: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?authuser=0

复制以下链接内容以供快速参考。

Firebase Crashlytics 会自动处理您的调试符号 (.dSYM) 文件,为您提供去混淆的、可读的崩溃报告。

很遗憾,有几种情况会导致 dSYM 上传失败, 通常是因为您的项目配置或 Bitcode 应用程序。上传失败时,Crashlytics 会显示“缺少 dSYM”警报 在 Firebase 控制台中让您知道它无法显示崩溃 正确报告。

如果您收到该警报,您可以尝试两种方法来解决 问题:检查 Xcode 是否生成了正确的 dSYM 文件,如果是 也就是说,手动运行 dSYM 上传脚本。

检查 Xcode 是否正在生成调试符号文件

通常情况下,符号文件会丢失,因为 Xcode 只是 不生产它们。以下是如何检查您的项目是否是 在每次构建时生成 dSYM:

在 Xcode 中打开您的项目,然后在 Xcode 中选择项目文件 航海家。从选择项目或 目标下拉菜单。打开目标的构建设置选项卡。点击附近的全部 选项卡的顶部。搜索“调试信息格式”。设置调试 使用 dSYM 文件将信息格式转换为 DWARF。一旦你这样做了, 再次构建您的应用程序并检查 Firebase 控制台以查看是否 Crashlytics 可以找到您的 dSYM。

手动运行上传符号脚本

作为备份,Crashlytics 还包括上传符号,这是一个您可以在任何地方调用的脚本 您的构建过程以手动上传您的 dSYM。该脚本提供 有关上传过程的更多信息和更强大的错误 消息传递。

重要提示:如果您正在使用之前关联的应用 从 Fabric 到 Firebase Crashlytics,将您的 Fabric API 密钥传递给 运行上传符号脚本。也就是说,在以下选项中 运行脚本,使用 -a fabric-api-key 而不是 -gsp 路径/到/GoogleService-Info.plist。要运行上传符号脚本, 使用以下选项之一:

在构建过程中包含以下行:

find dSYM_directory -name "*.dSYM" | xargs -I \\ $PODS_ROOT/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \\

直接从终端运行脚本:

/path/to/pods/directory/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs

从 Xcode 运行脚本构建阶段运行脚本:

"$PODS_ROOT/Fabric/upload-symbols" -gsp "$PROJECT_DIR/GoogleService-Info.plist" -p ios "$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"

注意:如果您遇到问题,请运行 upload-symbols 而不使用任何 获取使用说明和附加说明的参数。

【讨论】:

【参考方案10】:

我在使用 Fabric crashlytics 时遇到了同样的问题。 然后我使用分发配置文件创建了 ipa 并通过 iTunes 将其安装到我的设备上。之后我开始收到崩溃报告。希望它有所帮助:)

【讨论】:

以上是关于无法在 Crashlytics/fabric 中获取崩溃报告。显示错误:“看起来我们缺少 dSYM 来处理以下版本的崩溃。”的主要内容,如果未能解决你的问题,请参考以下文章

当用户更改首选项时如何在运行时禁用 Crashlytics/Fabric

在 iOS 运行时禁用 crashlytics/Fabric

我需要嵌入 Crashlytics / Fabric 框架吗?

支持 Watch 的 iOS 应用程序的 Crashlytics / Fabric 分布?

Crashlytics Fabric.io 已弃用

Crashlytics (Fabric) 为应用程序变体(构建类型、产品风格)分离组织