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

ios
android
ios

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。该脚本会提供关于上传过程的更多信息,并具有更强大的错误消息功能。要运行该脚本,请在编译过程中加入以下行:

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
注意:如果遇到问题,可运行不带任何参数的 upload-symbols,以获取使用情况记录和更多说明。
android

Crashlytics 使用 ProGuardDexGuard 映射文件来将您应用的堆栈跟踪记录呈现为经过反混淆处理、人能阅读的代码。要生成适当的映射文件,请为 Crashlytics 配置 Proguard 或 Dexguard:

  1. 为了保留所需的信息,以便 Crashlytics 生成人能阅读的崩溃报告,请在您的配置文件中添加以下行:

    -keepattributes *Annotation*                      // Keep Crashlytics annotations
    -keepattributes SourceFile,LineNumberTable        // Keep file names/line numbers
    -keep public class * extends java.lang.Exception  // Keep custom exceptions (opt)
    
  2. 要让 Crashlytics 自动上传 ProGuard 或 DexGuard 映射文件,请从配置文件中移除以下行:

    -printmapping mapping.txt
要使用 ProGuard 更快速地进行编译,可以排除 Crashlytics。 请在您的配置文件中添加以下行:
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面