默認情況下,Firebase Crashlytics 會自動處理您的調試符號 (dSYM) 文件,為您提供經過去混淆處理且易於閱讀的崩潰報告。當您將初始化 Crashlytics 的運行腳本添加到應用程序的構建階段時,就會設置此行為。
不幸的是,有幾種情況可能會導致您的 dSYM 上傳失敗,例如您應用程序中的位碼或其他獨特的項目配置。本指南提供了一些在 Crashlytics 無法找到您應用的 dSYM 時進行故障排除的方法。
檢查 Xcode 是否正在生成 dSYM
通常情況下,dSYM 文件會丟失,因為 Xcode 根本沒有生成它們。當上傳失敗時,Crashlytics 會在 Firebase 控制台中顯示“缺少 dSYM”警報。如果您收到此警報,請首先檢查 Xcode 是否為每個構建生成正確的 dSYM:
在 Xcode 中打開您的項目並在 Xcode Navigator 中選擇項目文件。
選擇您的主要構建目標。
打開目標的Build Settings選項卡,然後單擊All 。
搜索“調試信息格式”。
將所有構建類型的調試信息格式設置為DWARF with dSYM File 。
重建您的應用程序。
您的崩潰報告現在應該出現在 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