【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なるもののバージョン互換性が失われてしまっているようです。
### Error
```
ArgumentError - [Xcodeproj] Unable to find compatibility version string for object version `70`.
// 翻訳:オブジェクト バージョン `70` の互換性バージョン文字列が見つかりません。
トリガーとなっていたのはSwift Testingを追加した後のようで追加した際には「project.pbxproj」に定義されているobjectVersionの番号が自動でインクリメントされていました。
{
archiveVersion = 1;
classes = {
};
- objectVersion = 55;
+ objectVersion = 70;
objects = {
// 〜〜〜〜〜〜〜
そしてエラーの内容としてはCocoa Podsが内部的に保持しているCOMPATIBILITY_VERSION_BY_OBJECT_VERSION変数の値とobjectVersionの値が不一致になっていることで発生しているようです。COMPATIBILITY_VERSION_BY_OBJECT_VERSIONの中身はCocoa Pods >xcodeprojの中身に記述されているようです。これをみると77 => 'Xcode 16.0'なので70となっているのがおかしいようです。
COMPATIBILITY_VERSION_BY_OBJECT_VERSION = {
77 => 'Xcode 16.0',
63 => 'Xcode 15.3',
60 => 'Xcode 15.0',
56 => 'Xcode 14.0',
55 => 'Xcode 13.0',
54 => 'Xcode 12.0',
53 => 'Xcode 11.4',
52 => 'Xcode 11.0',
51 => 'Xcode 10.0',
50 => 'Xcode 9.3',
48 => 'Xcode 8.0',
47 => 'Xcode 6.3',
46 => 'Xcode 3.2',
45 => 'Xcode 3.1',
}.freeze
修正方法:objectVersionの値を変更する
解決するには「objectVersionの値を変更」する必要があります。変更したい場合はXcode右側のインスペクタエリアを表示して「Project Document」>「Project Format」に指定されているXcodeのバージョンを変更します。これはターゲットごとに変更することができるので、メインターゲットとPodsターゲットを私は両方ともXcode16に変更してみました。
するとobjectVersionの値が77に変更になりこの状態でpod installコマンドを実行することで無事エラーを吐かずに完了することができました。
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
// 〜〜〜〜〜〜〜
objectVersionとは?
objectVersionに関する詳細なリファレンスは見つけることはできませんでしたがどうやらXcodeプロジェクト(.xcodeproj)内のproject.pbxprojファイルのファイル形式バージョンを示す値のようです。
プロジェクト自体を作成したXcodeのバージョンに依存する形で最初は設定され、その後Xcodeのバージョンをあげても基本的には自動でインクリメントされることはないようです。アプリビルドに影響が出るかと思いましたが、幸い何もエラーを吐かずにビルドできたのであげても特に問題はなさそうでした。
なぜ発生したのか推察
今回のエラーの原因は予期せずobjectVersionの値が上がり、なぜかそれがCocoa Pods側では意図しない値になってしまっていたことです。
トリガーとなったのは「Xcode16に上げてからSwift Testingを追加した時」でした。おそらく新規ターゲットを追加する際にXcode16に依存したobjectVersionに更新され、それがたまたまCocoa Pods側では意図しない値になってしまっていただけかなと思います。
既存プロジェクトにターゲットを追加するタイミングでobjectVersionの値は更新されていくものなのかもしれないですね。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。





