获取经过反混淆处理的崩溃报告

Firebase Crashlytics 可自动处理您的调试符号 (.dSYM) 文件,以便为您提供经过反混淆处理、人能阅读的崩溃报告。

但是,在少数情况下,dSYM 上传会失败,这往往是因为您应用中存在独特的项目配置或 Bitcode。如果上传失败,Crashlytics 会在 Firebase 控制台中显示一条提醒 -“缺少 dSYM”(Missing dSYM),让您知道系统无法正常地显示崩溃报告。

如果您收到该提醒,可尝试做两件事来解决该问题:一,检查 Xcode 是否生成了正确的 dSYM 文件;二,如果生成了正确的文件,则手动运行 dYSM 上传脚本。

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

在很多情况下,符号文件缺失是因为 Xcode 根本没有生成它们。请执行以下操作,检查您的项目是否在每次编译时都生成了 dSYM:

  1. 在 Xcode 中打开您的项目,然后在 Xcode Navigator 中选择项目文件。
  2. Select a project or target 下拉菜单中选择您的主要编译目标。
  3. 打开该目标的 Build Settings 标签。
  4. 点击该标签顶部附近的 All
  5. 搜索“debug information format”。
  6. Debug Information Format 设置为 DWARF with dSYM File

完成上述操作后,再次编译您的应用并访问 Firebase 控制台,看看 Crashlytics 是否能够找到您的 dSYM。

手动运行符号上传脚本

作为一种备选方案,Crashlytics 还提供了 upload-symbols,这是一个您可以在构建过程中随时调用以手动上传 dSYM 的脚本。该脚本会提供关于上传过程的更多信息,并具有更强大的错误消息功能。

重要提示:如果您使用的是先前从 Fabric 链接到 Firebase Crashlytics 的应用,请传入 Fabric API 密钥以运行 upload symbols 脚本。也就是说,在以下运行脚本的选项中,使用 -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,以获取使用情况记录和更多说明。