在 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. 在「輸入檔案」部分中,確定已有位置的路徑 以下檔案:

    ${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 只是不會產生 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件如果上傳失敗,Crashlytics 會顯示「缺少 dSYM」訊息警示 也可前往 Firebase 控制台如果收到這類警示,請先確認 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 中查看封存檔。再次按下 Control 鍵並按一下滑鼠 然後按一下「Show Package Contents」

  3. .xcarchive 中的 dSYMs 目錄包含 dSYMs, 是 Xcode 封存程序的一部分

上傳 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 參數。