iOS Firebase Crashlytics缺失dSYM

5

我正在尝试使用Google Firebase Crashlytics。

我遵循了以下步骤:

https://docs.fabric.io/apple/crashlytics/missing-dsyms.html https://firebase.google.com/docs/crashlytics/upgrade-from-crash-reporting

但是与Firebase Crashlytics仍然不能正常工作。

我的应用程序“设置Bitcode”设置为NO。

我尝试将Build Settings中的“Debug Information Format”设置为“DWARF with dSYM”。

我尝试手动从“Show package content”获取dSYM,压缩成zip文件,并将其上传到Firebase Crashlytics。它显示上传成功,但仍存在找不到dSYM的消息。

我的先前上传的dSYM未显示在Firebase仪表板上(我不确定此意图是否如此)。

所以基本上我的崩溃已提交到Firebase Crashlytics,但无法获得dSYM。

有人可以指导我如何使用吗?


Firebase 的 Mike 在这里。如果你运行 dwarfdump -u <PathToDsym>,上传的 dSYM 的 UUID 是否与报告为丢失的 UUID 匹配? - Mike Bonnell
嗨,Mike,我是开发新手,请您详细说明一下如何运行上面的命令?我可以在终端中直接运行它吗?还有,我该如何获取到dSYM的路径?谢谢。 - Alvin
在您的 macOS 终端上运行它,对于路径,您可以将 dSYM 拖到终端中,路径将被添加。 - Mike Bonnell
您好,很抱歉回复晚了。是的,在我的包内容dsym中有一个UUID与firebase中的UUID匹配(缺少dSYM)。我需要做些什么吗?谢谢。 - Alvin
嗯,那应该就可以解决问题了。我建议您联系Firebase支持并提供dSYM文件。 - Mike Bonnell
我已经尝试了几个应用程序,但是问题仍然存在。感谢您的帮助! - Alvin
3个回答

17
我按照以下步骤解决了dSYM文件缺失的问题:
  1. 在Build phase中添加以下运行脚本(参考下面的图片):Adding run script

  2. 在build settings中将enable bitcode设置为Yes,并将Debug information format设置为DWARF with dSYM File(参考下面的图片):DWARF with dSYM File

  3. 手动使用终端上传dSYM文件,操作如下:

(3.1) 打开终端

(3.2) 在Xcode项目 -> Pods -> FirebaseCrashlytics 文件夹下右键点击并选择Show in Finder,你会找到如下图片所示的Upload_Symbols文件:FirebaseCrashlyticsUpload_Symbols

(3.3) 将upload-symbols文件拖放到终端中:Drag & Drop upload-symbols

(3.4) 在终端中输入-gsp并在两侧留有空格。

(3.5)在xcode项目中找到GoogleService-Info.plist文件。将GoogleService-Info.plist拖放到终端中,如下图所示。 GoogleService-Info.plist

(3.6)在终端中输入-p ios,两边各加一个空格。

(3.7)找到app.dSYM文件,如下所示。
Xcode -> Windows -> Organizer -> 选择Archive -> 右键单击 -> Show in Finder -> 选择Archive -> 右键单击 -> Show package contents -> dSYMs -> 选择app.dSYM

(3.8)将app.dSYM文件拖放到终端中,如下图所示。
app.dSYM

(3.9)输入命令,控制台会显示以下消息。
Success

(3.10)尝试在设备中卸载并重新安装应用程序,请稍后检查,firebase中的问题将得到解决。


6

在您的Xcode项目中,在构建阶段下,添加以下运行脚本:

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

here is a image


需要选择“在构建日志中显示环境变量”复选框吗? - Nirav Kotecha
@iNiravKotecha 我不这么认为,它是默认选中的。 - Mahgol Fa

4
在构建阶段添加以下脚本:
${PODS_ROOT}/Fabric/run

输入文件:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
$(BUILT_PRODUCTS_DIR)/${GOOGLE_INFO_PLIST_PATH}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

添加用户定义设置:

GOOGLE_INFO_PLIST_PATH:     ${SRCROOT}/GoogleService-Info.plist

对于以下脚本: 不要勾选仅在安装时运行脚本选项。
${PODS_ROOT}/Fabric/upload-symbols -gsp ${GOOGLE_INFO_PLIST_PATH} -p ios ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}

如果您正在使用新的FirebaseCrashlytics,请在脚本中用FirebaseCrashlytics替换Fabric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接