Google 致力于为黑人社区推动种族平等。查看具体举措

使用 Firebase Crashlytics SDK 获取经过去混淆处理的崩溃报告

默认情况下,Firebase Crashlytics 会自动处理您的调试符号 (dSYM) 文件,以便为您提供经过去混淆处理且易于用户理解的崩溃报告。此行为是在您将初始化 Crashlytics 的运行脚本添加到应用的构建阶段时设置的。

遗憾的是,有几种情况可能会导致您的 dSYM 上传失败,例如应用中包含位码或独特的项目配置。本指南提供了一些方法,如果 Crashlytics 无法找到应用的 dSYM,您可以借鉴这些方法来排查问题。

检查 Xcode 是否生成了 dSYM

在很多情况下,dSYM 文件缺失是因为 Xcode 根本没有生成它们。在上传失败时,Crashlytics 会在 Firebase 控制台中显示“dSYM 缺失”提醒。如果您收到该提醒,请先检查 Xcode 是否确实为每个 build 生成了正确的 dSYM:

  1. 在 Xcode 中打开您的项目,然后在 Xcode Navigator 中选择项目文件。

  2. 选择您的主要构建目标。

  3. 打开目标的 Build Settings 标签页,然后点击 All

  4. 搜索“debug information format”。

  5. 对于所有构建类型,请将 Debug Information Format 设置为 DWARF with dSYM File

  6. 重新构建您的应用。

您的崩溃报告现在应该会显示在 Firebase 控制台中。如果问题仍然存在或者您遇到其他错误,请尝试查找您的 dSYM 并将其手动上传到 Crashlytics。

查找您的 dSYM

有时,由于位码配置或控制台连接问题,Crashlytics 无法找到应用的 dSYM。遇到这种情况时,您还可以通过另外两种方法排查问题:

上传您的 dSYM

作为一种备选方案,Crashlytics 包含一个 upload-symbols 脚本,您可以在构建过程中随时调用该脚本,以手动上传您的 dSYM。该脚本会提供有关上传流程的更多信息,并且具有更为稳健的错误消息功能(如需查看使用情况记录和其他说明,请在不带任何参数的情况下运行 upload-symbols)。

要运行 upload-symbols 脚本,请使用以下选项之一:

  1. 在构建流程中加入以下行:

    find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}
  2. 直接从终端运行该脚本:

    /path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs