Xcode 15.3および15.4で、git ブランチの変更や pod install
など、リポジトリに変更を加えるたびに、ワークスペースの Package.resolved
が削除されてしまう現象が報告されています。この問題により、ビルド時にSwift Package Manager (SPM)で管理しているライブラリが一部削除され、ビルドエラーが発生するケースが確認されています。本記事では、この現象の再現手順と対処方法について解説します。
再現手順
以下の手順で問題を再現することができます。
-
pod install
を実行する。 - Xcodeでプロジェクトをビルドする。ビルドエラーが発生し、エラーログが表示される。
- Xcodeで「Resolve Package Versions」を実行すると、エラーが解消される。しかし、この方法ではキャッシュを削除しても問題は完全に解決しません。
問題の詳細
この問題は、pod install
やgitブランチの切り替えを行う際に、Package.resolved
が意図せず削除されることが原因です。このファイルが削除されると、Xcodeはパッケージのバージョン情報を失い、ビルドに必要なライブラリが見つからなくなるため、ビルドエラーが発生します。
注意: git ブランチ変更時にこの問題が発生したという報告が他の開発者から寄せられていますが、私の環境では再現しませんでした。現象が発生する条件が環境や設定によって異なる可能性があります。
対処方法
問題が発生した場合、以下の方法で一時的にエラーを解消することが可能です。
- Xcodeのメニューから「File」 > 「Packages」 > 「Resolve Package Versions」を選択し、パッケージのバージョンを再度解決します。
- 必要に応じて、
Package.resolved
ファイルを手動で復元するか、pod install
を実行する前にバックアップしておくと良いでしょう。
しかしながら、これらの対処法は根本的な解決には至らず、再度リポジトリに変更を加えた際に同じ問題が再発する可能性があります。
今後の対策
現在、Xcode 16 Beta 6がリリースされていますので、この問題が修正されているか確認することをお勧めします。Appleの公式リリースノートや開発者フォーラムなどで、Xcodeの最新バージョンの修正内容を確認することが重要です。
まとめ
Xcode 15.3および15.4で発生する Package.resolved
の削除問題は、プロジェクトのビルドエラーの原因となる厄介な問題です。手動でバージョン解決を行うことで一時的に回避可能ですが、根本的な解決策としてXcodeのアップデートを検討する必要があります。
同様の現象が報告されているユーザーもいるため、最新の情報を追いかけながら対応することが重要です。