【问题标题】:iOS Firebase Crashlytics missing dSYMiOS Firebase Crashlytics 缺少 dSYM
【发布时间】:2018-11-14 15:32:20
【问题描述】:

所以我正在尝试使用 Google Firebase Crashlytics

我已按照

中的任何步骤进行操作

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

但它仍然无法与 Firebase Crashlytics 一起使用

我的应用程序“设置位码”设置为否

我尝试将构建设置中的“调试信息格式”设置为“DWARF with dSYM”

我尝试从我存档的应用程序(相同版本的应用程序)上的“显示包内容”手动获取 dSYM,将其压缩为 zip,然后将其上传到 Firebase Crashlytics。它显示上传成功,但丢失的 dSYM 消息仍然存在。

我之前上传的 dSYM 没有显示在 Firebase 仪表板上(我不确定这是不是有意的)

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

谁能指导我如何使用它?

【问题讨论】:

  • 这里是来自 Firebase 的 Mike。如果您运行 dwarfdump -u 您上传的 dSYM 的 UUID 是否与报告为丢失的 UUID 匹配?
  • 嗨,迈克,我是开发新手,能否详细说明我如何运行上面的命令?我可以在终端中运行它吗?我怎样才能获得 dSYM 的路径?谢谢
  • 是的,在您的 macOS 机器上的终端中运行它,对于路径,您只需将 dSYM 拖到终端中即可添加路径。
  • 您好,先生,很抱歉我的回复晚了。是的,我的包内容 dsym 中有一个 UUID 与 fiirebase 中的 UUID 匹配(缺少 dSYM)。我有什么需要做的吗?谢谢
  • 嗯,那应该可以解决问题。我建议您联系 Firebase 支持并同时提供 dSYM。

标签: ios firebase crashlytics


【解决方案1】:

我通过以下步骤解决了丢失的 dSYM 问题。

  1. 在构建阶段添加运行脚本,如下图

  2. 在构建设置下启用位码为是调试信息格式DWARF with dSYM File如下

  3. 使用终端手动上传 dSYM,如下所示

(3.1) 打开终端

(3.2) 在 Xcode Project -> Pods -> FirebaseCrashlytics 文件夹 -> 右键单击​​ -> Show in Finder 下,您将找到 Upload_Symbols 文件,如下图

(3.3)将 upload-symbols 文件拖放到终端中

(3.4)在终端输入-gsp,两边各留一个空格

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

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

(3.7)找到 app.dSYM 文件如下
Xcode -> Windows -> Organizer -> 选择存档 -> 右键单击​​ -> 在 finder 中显示 -> 选择存档 -> 右键单击​​ -> 显示包内容 -> dSYMs -> 选择 app.dSYM

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

(3.9)回车,你会在控制台收到如下消息

(3.10)尝试在设备中卸载并安装应用程序,请过一段时间检查,firebase中的问题将得到解决

【讨论】:

    【解决方案2】:

    在您的 Xcode 项目中,在 Build Phases 下 添加下面的运行脚本:

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

    【讨论】:

    • 是否需要勾选“在构建日志中显示环境变量”复选框?
    • @iNiravKotecha 我不这么认为,默认勾选了
    【解决方案3】:

    在构建阶段添加以下脚本:

    ${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,请将您的脚本中的Fabric 替换为FirebaseCrashlytics

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多