Xcode15.3でプロジェクトをビルドすると、Missing package product が発生する。

エラーの内容

Xcode15.3で既存のプロジェクトをビルドすると、Swift Package Mangerで追加してたパッケージにMissing package product が発生する。

Build target MyApp of project MyApp with configuration Debug
MyApp.xcodeproj: error: Missing package product 'FirebaseAnalytics' (in target 'MyApp' from project 'MyApp')
MyApp.xcodeproj: error: Missing package product 'RswiftLibrary' (in target 'MyApp' from project 'MyApp')

Missing package product は File > Swift Packages > Reset Package Caches でキャッシュをクリアすれば、もう一度ビルドされて解決するが、一度ビルドしてシミュレーターで実行すると、次の実行時に再度Missing package product が発生する。 実行するたびに毎回 Reset Package Caches するのは面倒すぎる。

解決方法

原因は、SchemeのBuild - post-actionsでビルド番号をインクリメントするスクリプトが原因だった。 gitのコミット番号を取得してビルド番号を作成し、avgtoolでビルド番号を設定していたが、 これをやめるとMissing package product が発生しなくなった。

バージョン番号は他の方法を探そうと思う。

追記

どうやら avgtoolだけではなく、プロジェクトファイル(MyApp.xcodeproj/project.pbxproj)をXcode外で更新してしまうとMissing package product が発生するようだ。 project.pbxprojを触らず、xcconfigにCURRENT_PROJECT_VERSIONを移して変更するようにしてみよう。