无法在 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 中运行脚本,该脚本会在构建期间将dsym
s 提交给 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 框架吗?