Table of Contents
- 問題
- 対処法
- 参考
問題
私のiOSアプリでは、以下のようなスクリプトを作成して、CI上でCrashlyticsのデバッグシンボルが自動的にアップロードされるように構成してあった。このスクリプトでは、$PODS_ROOT環境変数を使って、CrashlyticsのSDKのソースに含まれるコマンドを叩いているため、Swift Package Managerに乗り換えると当然動作しなくなる。
if [ "$CONFIGURATION" = "Release" ]; then
gsinfo_plist_path="$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/GoogleService-Info.plist"
firebase_app_id=$(/usr/libexec/PlistBuddy -c "Print :GOOGLE_APP_ID" "$gsinfo_plist_path")
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai $firebase_app_id -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai $firebase_app_id -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
fi
Xcodeは26.2。
対処法
upload-symbolsコマンドのパスが変わっただけなので、パスを書き換えてあげればOK。新しいパスは以下。
${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols
これを用いてスクリプトを修正する。
if [ "$CONFIGURATION" = "Release" ]; then
gsinfo_plist_path="$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/GoogleService-Info.plist"
firebase_app_id=$(/usr/libexec/PlistBuddy -c "Print :GOOGLE_APP_ID" "$gsinfo_plist_path")
upload_symbols="${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols"
$upload_symbols --build-phase --validate -ai $firebase_app_id -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$upload_symbols --build-phase -ai $firebase_app_id -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
fi
※なぜかaliasは動作しなかった。
参考
https://stackoverflow.com/questions/76926943/firebase-automate-uploading-dsyms-swift-package-manager