概要
以下のような/~~.xcodeproj cannot be opened because it is missing its project.pbxproj file.
というエラーが表示された時の対処法です。
検索するとこのエラーについてのissueやstackoverflowでの質問がいくつか見つかりましたが解決していないままであったり自分で試してもうまくいかなかったりと、プロジェクトが開けなくなりとてもとても焦りました。
git reflog
を使って動かなくる前のコミットに戻してみるというのを試しましたが、特に解決しませんでした。
エラーの意味
「/~~.xcodeproj
がパッケージ内に本来含んでいるはずのproject.pbxproj
が無くなっているのでプロジェクトを開けません。」という意味です。
何かの拍子にproject.pbxproj
が消えてしまったか、データが壊れてしまったことが原因だと考えられます。
結論
バックアップをとっておきましょう
project.pbxproj
は既存のプロジェクトに対して新規で作成することができません。
新しくXcodeのプロジェクトを作成してproject.pbxproj
をコピペするか、バックアップされている該当プロジェクトファイルのproject.pbxproj
をコピペすることで動くようになります。
プロジェクトが開けなくなる前のファイルが残っていれば、そちらを使うのがベストです。
project.pbxproj
にはアプリの環境設定がたくさん含まれており、これを手動で復元するのはほぼ無理だと思われます。。
手順
該当プロジェクトを開けた時のファイル(バックアップ)が残っている場合
- 開けた時のプロジェクトファイルをFinderで開き、
~~.xcodeproj
を右クリックしてパッケージの内容を表示
をクリック -
project.pbxproj
をコピー - 開けなくなった方のプロジェクトファイルをFinderで開き、
~~.xcodeproj
を右クリックしてパッケージの内容を表示
をクリック - 2でコピーした
project.pbxproj
をペースト
バックアップが残っていない場合
- 新規Xcodeプロジェクトを作成します(開きたい元々のプロジェクトのProductNameやbundleを思い出して作ります)
- 新規作成したプロジェクトファイルをFinderで開き、
~~.xcodeproj
を右クリックしてパッケージの内容を表示
をクリック -
project.pbxproj
をコピー - 開けなくなった方のプロジェクトファイルをFinderで開き、
~~.xcodeproj
を右クリックしてパッケージの内容を表示
をクリック - 3でコピーした
project.pbxproj
をペースト - 開けなくなった方のファイルが開けるようになりますが、Deployment Targetなどのプロジェクトに関する環境設定が初期設定になっているので思い出して修正する必要があります
この手順で開けるようになります!
Swift Package Managerを使用しているとアップデートをする必要があったり、その他エラーが出るかもしれませんがとにかく開けるようになるので安心です🎉
備考
gitでブランチを切り替えたりpullしたり色々動かしていたら突然このようなエラーが表示されXcodeのプロジェクトが開けなくなったので、git関連、ローカルでのコンフリクトなどが原因になっている可能性があると考えています。
おわりに
GitHubにリポジトリを置いているとはいえ、ローカルのバックアップは大事だと痛感しました。Gitをもう少しちゃんと勉強したいと思います。
お読みいただき、ありがとうございました。お役に立てましたら幸いです。
参考