根據預設,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
),請確認已擁有下列項目
設定:
按一下「Build Phases」分頁標籤,展開「Run Script」部分。
在「輸入檔案」部分中,確定已有位置的路徑 以下檔案:
${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:
在 Xcode 中開啟專案,然後選取 Xcode 中的專案檔案 Navigator。
選取主要建構目標。
開啟目標的「Build Settings」分頁,然後按一下「All」。
搜尋:
debug information format
。將全部的「Debug Information Format」設為「DWARF with dSYM File」 和建構類型
重新建構應用程式。
您的當機報告現在應該會顯示在 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:
在 Xcode 中開啟「Orgr」視窗,然後從 請參考閱讀清單,進一步瞭解 如何選擇 Kubeflow Pipelines SDK 或 TFXXcode 會顯示專案的封存清單。
在封存檔上按住 Control 鍵並按一下滑鼠,即可在 Finder 中查看封存檔。再次按下 Control 鍵並按一下滑鼠 然後按一下「Show Package Contents」。
.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
參數。