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

預設情況下,Firebase Crashlytics 會自動處理您的偵錯符號 (dSYM) 文件,為您提供經過反混淆且易於閱讀的崩潰報告。您通常在應用程式中初始設定 Crashlytics 期間配置此行為,特別是透過新增執行腳本來在應用程式的建置階段自動上傳 dSYM 檔案。

不幸的是,在某些情況下可能會導致自動 dSYM 檔案上傳失敗。本指南提供了一些在 Crashlytics 無法找到應用程式的 dSYM 檔案時進行故障排除的方法。

確保 Xcode 可以自動處理 dSYM 並上傳文件

在應用程式中設定 Crashlytics 時,您配置了一個執行腳本來自動處理 dSYM 並上傳檔案。

確保您的 Crashlytics 執行腳本配置是最新的,符合從 Xcode 15 開始的新要求。如果您的配置不是最新的,您可能會收到以下錯誤:
error: Info.plist Error Unable to process Info.plist at path ...

具體來說,Xcode 15 及更高版本要求您提供更完整的檔案位置集。對於您的 Crashlytics 運行腳本 ( firebase-ios-sdk/Crashlytics/run ),請確保您具有以下設定:

  1. 按一下「建置階段」選項卡,然後展開「執行腳本」部分。

  2. 「輸入檔案」部分中,確保您具有以下檔案位置的路徑:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

檢查 Xcode 是否正在產生 dSYM

通常,dSYM 檔案會遺失,因為 Xcode 根本不會產生它們。上傳失敗時,Crashlytics 會在 Firebase 控制台中顯示「缺少 dSYM」警報。如果您收到此警報,請先檢查 Xcode 是否為每個建置產生正確的 dSYM:

  1. 在 Xcode 中開啟您的項目,然後在 Xcode 導航器中選擇項目檔案。

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

  3. 開啟目標的「建置設定」標籤,然後按一下「全部」

  4. 搜尋debug information format

  5. 對於所有建置類型,使用 dSYM 檔案偵錯資訊格式設為 DWARF。

  6. 重建您的應用程式。

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

在本機上找到您的 dSYM

執行以下命令以顯示電腦上所有 dSYM 的 UUID 並蒐索遺失的 dSYM:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

找到 dSYM 後,手動將其上傳到 Crashlytics 。如果mdfind指令未傳回任何結果,您可以在.app所在的Products目錄中尋找(預設情況下, Products目錄位於Derived Data中)。如果您的應用程式已發佈到生產環境,您也可以在磁碟上的.xcarchive目錄中找到其 dSYM:

  1. 在 Xcode 中,開啟管理器窗口,然後從清單中選擇您的應用程式。 Xcode 顯示您的專案的存檔清單。

  2. 按住 Control 鍵單擊存檔可在 Finder 中查看它。再次按住 Control 鍵單擊它,然後按一下「顯示包內容」

  3. .xcarchive中有一個 dSYMs 目錄,其中包含作為 Xcode 歸檔過程的一部分所產生的 dSYM。

上傳您的 dSYM

Crashlytics 支援多種方式上傳 dSYMs 文件,自動手動

(建議)自動處理您的 dSYM 並上傳文件

當您最初設定 Crashlytics 時,您很可能為您的應用程式配置了此自動上傳行為。但是,如果自動上傳失敗,請檢查您的配置是否正確

手動上傳您的 dSYM 文件

如果自動上傳失敗,您可以使用下列任一選項手動上傳 dSYM 檔案。

  • 選項 1 :使用基於控制台的「拖曳」選項上傳包含 dSYM 檔案的 zip 檔案(前往 Firebase 控制台 > Crashlytics > dSYMs標籤)。

  • 選項 2 :使用upload-symbols腳本,您可以在建置過程中的任何位置呼叫該腳本來手動上傳 dSYM 檔案。要執行upload-symbols腳本,請使用以下選項之一:

    • 選項 A :在建置過程中包含以下行:

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

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

    有關此腳本的使用說明和其他說明,請使用--help參數執行upload-symbols