了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

在 Crashlytics 儀表板中獲取可讀的崩潰報告

默認情況下,Firebase Crashlytics 會自動處理您的調試符號 (dSYM) 文件,為您提供經過去混淆處理且易於閱讀的崩潰報告。當您將初始化 Crashlytics 的運行腳本添加到應用程序的構建階段時,就會設置此行為。

不幸的是,有幾種情況可能會導致您的 dSYM 上傳失敗,例如您應用程序中的位碼或其他獨特的項目配置。本指南提供了一些在 Crashlytics 無法找到您應用的 dSYM 時進行故障排除的方法。

檢查 Xcode 是否正在生成 dSYM

通常情況下,dSYM 文件會丟失,因為 Xcode 根本沒有生成它們。當上傳失敗時,Crashlytics 會在 Firebase 控制台中顯示“缺少 dSYM”警報。如果您收到此警報,請首先檢查 Xcode 是否為每個構建生成正確的 dSYM:

  1. 在 Xcode 中打開您的項目並在 Xcode Navigator 中選擇項目文件。

  2. 選擇您的主要構建目標。

  3. 打開目標的Build Settings選項卡,然後單擊All

  4. 搜索“調試信息格式”。

  5. 將所有構建類型的調試信息格式設置為DWARF with dSYM File

  6. 重建您的應用程序。

您的崩潰報告現在應該出現在 Firebase 控制台中。如果問題仍然存在或您遇到其他錯誤,請嘗試找到您的 dSYM並將其手動上傳到 Crashlytics。

找到您的 dSYM

有時,由於位碼配置或控制台的連接性,Crashlytics 無法找到您應用的 dSYM。發生這種情況時,您可以通過另外兩種方法進行故障排除:

上傳您的 dSYM

要手動上傳您的 dSYM,您可以使用基於控制台的“拖放”選項上傳包含您的 dSYM 文件的 zip 存檔(轉到 Firebase 控制台 > Crashlytics > dSYM選項卡)。

或者,作為備份,Crashlytics 包含一個upload-symbols腳本,您可以在構建過程中的任何位置調用該腳本以手動上傳您的 dSYM 文件。該腳本提供有關上傳過程的更多信息和更全面的錯誤消息(有關使用說明和其他說明,請運行不帶任何參數的upload-symbols )。

上傳 bitcode dSYM 時,通過運行以下命令刪除 zip 存檔中的任何圖標文件可能會有所幫助:

unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)

要運行upload-symbols腳本,請使用以下任一選項:

  • 在構建過程中包括以下行:

    find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
  • 直接從終端運行腳本:

    /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs