Firebase已发布了解决“Missing dSYM”问题的官方指南:
https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?authuser=0
下面是链接内容的复制,以供快速参考。
Firebase Crashlytics会自动处理您的调试符号(.dSYM)文件,以提供反混淆的、易读的崩溃报告。
不幸的是,有一些情况下dSYM上传会失败,通常是由于您的应用程序中独特的项目配置或Bitcode。当上传失败时,Crashlytics会在Firebase控制台中显示“缺少dSYM”警报,以让您知道它无法正确显示崩溃报告。
如果您收到该警报,有两件事情可以尝试解决问题:检查Xcode是否生成了正确的dSYM文件,如果是,则手动运行dSYM上传脚本。
检查Xcode是否生成调试符号文件
往往情况下,符号文件丢失是因为Xcode根本没有生成它们。以下是如何检查您的项目是否在每次构建时生成dSYMs:
在Xcode中打开您的项目,并在Xcode导航器中选择项目文件。从“选择项目或目标”下拉菜单中选择您的主要构建目标。打开目标的“构建设置”选项卡。点击选项卡顶部附近的“All”。搜索“调试信息格式”。将调试信息格式设置为DWARF with dSYM File。完成后,再次构建您的应用程序,并检查Firebase控制台,看看Crashlytics是否能够找到您的dSYMs。
手动运行上传符号脚本
作为备份,Crashlytics还包括upload-symbols,一个您可以在构建过程中的任何位置调用的脚本,以手动上传您的dSYMs。该脚本提供有关上传过程的更多信息和更强大的错误消息。
重要提示:如果您正在使用之前从Fabric链接到Firebase Crashlytics的应用程序,请传递您的Fabric API密钥以运行上传符号脚本。也就是说,在以下选项中运行脚本时,请使用-a fabric-api-key而不是-gsp path/to/GoogleService-Info.plist。要运行upload-symbols脚本,请使用以下选项之一:
在您的构建过程中包含以下行:
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而不带任何参数,以获取使用说明和其他指示。
dsym
吗? - Droppy