【Xcode/Cocoa Pods】objectVersionエラーの解決方法!

この記事からわかること
- Xcode/iOSのCocoa Podsでpod installでエラーになった場合の解決法
- objectVersionの変更方法
- Unable to find compatibility version string for object version `70`.の解決法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:16.3
- iOS:18.0
- Swift:5.9
- Cocoa Pods:1.16.2
- macOS:Sequoia 15.4
参考記事Zenn:Xcode16に上げたら、pod installができなくなった話
Unable to find compatibility version string for object version `70`.
Xcode16以上に上げてからSwift Testingを追加した後にCocoa Podsでpos install
コマンドを実行した際に「Unable to find compatibility version string for object version `70`.
」というエラーが発生しました。内容をみるとobject versionなるもののバージョン互換性が失われてしまっているようです。
トリガーとなっていたのはSwift Testingを追加した後のようで追加した際には「project.pbxproj」に定義されているobjectVersion
の番号が自動でインクリメントされていました。
そしてエラーの内容としてはCocoa Podsが内部的に保持しているCOMPATIBILITY_VERSION_BY_OBJECT_VERSION
変数の値とobjectVersion
の値が不一致になっていることで発生しているようです。COMPATIBILITY_VERSION_BY_OBJECT_VERSION
の中身はCocoa Pods >xcodeprojの中身に記述されているようです。これをみると77 => 'Xcode 16.0'
なので70
となっているのがおかしいようです。
修正方法:objectVersionの値を変更する
解決するには「objectVersionの値を変更」する必要があります。変更したい場合はXcode右側のインスペクタエリアを表示して「Project Document」>「Project Format」に指定されているXcodeのバージョンを変更します。これはターゲットごとに変更することができるので、メインターゲットとPodsターゲットを私は両方ともXcode16に変更してみました。

するとobjectVersion
の値が77
に変更になりこの状態でpod install
コマンドを実行することで無事エラーを吐かずに完了することができました。
objectVersionとは?
objectVersion
に関する詳細なリファレンスは見つけることはできませんでしたがどうやらXcodeプロジェクト(.xcodeproj)内のproject.pbxprojファイルのファイル形式バージョンを示す値のようです。
プロジェクト自体を作成したXcodeのバージョンに依存する形で最初は設定され、その後Xcodeのバージョンをあげても基本的には自動でインクリメントされることはないようです。アプリビルドに影響が出るかと思いましたが、幸い何もエラーを吐かずにビルドできたのであげても特に問題はなさそうでした。
なぜ発生したのか推察
今回のエラーの原因は予期せずobjectVersion
の値が上がり、なぜかそれがCocoa Pods側では意図しない値になってしまっていたことです。
トリガーとなったのは「Xcode16に上げてからSwift Testingを追加した時」でした。おそらく新規ターゲットを追加する際にXcode16に依存したobjectVersion
に更新され、それがたまたまCocoa Pods側では意図しない値になってしまっていただけかなと思います。
既存プロジェクトにターゲットを追加するタイミングでobjectVersion
の値は更新されていくものなのかもしれないですね。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。