在 Crashlytics 資訊主頁中取得可讀的當機報告


根據預設,Firebase Crashlytics 會自動處理您的偵錯符號 (dSYM) 檔案,並提供經過去模糊化且淺顯易懂的當機報告。您通常會在應用程式中初始設定 Crashlytics 時設定這項行為,具體來說,就是新增執行指令碼,以便在應用程式建構階段自動上傳 dSYM 檔案。

很抱歉,以下幾種情況可能會導致自動 dSYM 檔案上傳失敗。本指南提供一些方法,協助您在 Crashlytics 找不到應用程式的 dSYM 檔案時進行疑難排解。

確認 Xcode 可自動處理 dSYM 並上傳檔案

在應用程式中設定 Crashlytics 時, 設定執行指令碼 自動處理 dSYM 並上傳檔案。

請確定您的 Crashlytics 執行指令碼設定是 反映最新的要求。如果您的 可能有以下錯誤:
error: Info.plist Error Unable to process Info.plist at path ...

具體來說,Xcode 15 以上版本需要提供更完整的一組 檔案位置。針對 Crashlytics 執行指令碼 (firebase-ios-sdk/Crashlytics/run),請確認您已完成以下設定:

  1. 按一下「Build Phases」分頁標籤,然後展開「Run Script」部分。

  2. 在「Input Files」部分,請確認您有下列檔案位置的路徑:

    ${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 控制台中顯示「Missing dSYM」警示。如果您收到這則快訊,請先檢查 Xcode 是否為每個版本產生正確的 dSYM:

  1. 在 Xcode 中開啟專案,然後選取 Xcode 中的專案檔案 Navigator。

  2. 選取主要建構目標。

  3. 開啟目標的「Build Settings」分頁,然後按一下「All」

  4. 搜尋:debug information format

  5. 將全部的「Debug Information Format」設為「DWARF with dSYM File」 和建構類型

  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 中開啟「Orgr」視窗,然後從 請參考閱讀清單,進一步瞭解 如何選擇 Kubeflow Pipelines SDK 或 TFXXcode 會顯示專案的封存清單。

  2. 在封存檔上按住 Control 鍵並按一下滑鼠,即可在 Finder 中查看封存檔。再次按住滑鼠右鍵,然後點選「Show Package Contents」

  3. .xcarchive 中包含 dSYM 目錄,其中包含 Xcode 封存程序產生的 dSYM。

上傳 dSYM

Crashlytics 支援多種上傳 dSYM 檔案的方式, 自動手動新增。

(建議) 自動處理 dSYM 並上傳檔案

初次設定 Crashlytics 時,您很可能已為應用程式設定此自動上傳行為。不過,如果自動上傳失敗,請檢查設定是否正確

手動上傳 dSYM 檔案

如果自動上傳失敗,您可以使用

  • 方法 1:使用控制台的「拖曳」功能上傳 ZIP 檔案的選項 內含該 dSYM 檔案 (請前往 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

    如需這個指令碼的使用注意事項和其他操作說明,請執行 upload-symbols 搭配 --help 參數。