Table of Contents
- 問題
- 対処法
- 参考
問題
私のiOSアプリ(Flutter)では、以下のようなスクリプトを作成して、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。新しいパスは以下。
# ※Flutter 3.41以前
${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols
【2026/06/10 更新】Flutter 3.44以降のパスについて
Flutter 3.44にて、SwiftPMのソースパッケージのパスが変更された。新しいupload-symbolsのパスは以下のとおり。
${SRCROOT}/../build/ios/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols新旧両方に対応するには、以下のように書くと良さげ
upload_symbols="${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols" if [ ! -x "$upload_symbols" ]; then upload_symbols="$SRCROOT/../build/ios/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols" fi
これを用いてスクリプトを修正する。
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"
if [ ! -x "$upload_symbols" ]; then
upload_symbols="$SRCROOT/../build/ios/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols"
fi
$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
参考
https://stackoverflow.com/questions/76926943/firebase-automate-uploading-dsyms-swift-package-manager