発生した問題
環境
- XCode15(XCode14では再現しない)
- Swift Package Managerでfirebase-ios-sdk(9.0.0)を利用
操作
XCodeからReleaseビルドを行う。(Debugビルドでは再現しない)
結果
以下のエラーが出力されて、ビルドができない問題が起きました。
Info.plist Error Unable to process Info.plist at path /Users.../Info.plist
解決方法
私の環境では2つの方法で解決することができました。
解決方法1: Crashlytics/runの[Input Files]の入力
解決方法はFirebaseのドキュメントに記載されてました。
Crashlytics 実行スクリプトの構成が Xcode 15 以降の新しい要件に対応していることを確認します。構成が最新でない場合、次のエラーが発生する可能性があります。
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. [Input Files] セクションで、次のファイルの場所のパスが設定されていることを確認します。
${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
$(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)
上記の対応を行ったところ表題のエラーは消えました。
しかし、私の場合は新しく以下のエラーが出力されるようになりました。
Cycle inside ...; building could produce unreliable results.
このエラーは以下のURLに解決策がありました。
Update: we managed to fix the issue on our end by moving the 'Embed Frameworks' build phase above the 'Run script' build phase(s).
Forumに記載の通り、[Build Phases]の[Embed Frameworks]を他の[Run Script]より上の順番にすることでエラーが消えました。
解決方法2: [Run Script]を最後尾に移動
以下の方法でもエラーが消えました。
after upgrading to Xcode 15, I had the same error when building. however, after checking my build phase, it turned out the run script was not the last step. so I move the run script to the bottom, then it compiles successfully. it might not suit your situation, post so it may be helpful for others.
Forumに記載の通り、XCodeの[Build Phases]でFirebaseの[Run Script]を最後尾に移動させることでエラーが消えビルドが可能になりました。
おわりに
いずれにしても、[Build Phases]の[Embed Frameworks]と[Run Script]の順番?が関係してるように見えました。