Skip to content

CocoaPodsエラー:object version '70'の互換性バージョンが見つからない問題の解決

環境依存

次の環境で発生する問題です:

  • CocoaPods 1.16.2
  • Xcode 16.1+
  • macOS 15.0.1
  • FlutterプロジェクトにShare Extension追加後

問題の詳細

Flutter iOSプロジェクトにShare Extensionを追加後、pod install 実行時に下記エラーが発生します:

bash
ArgumentError - [Xcodeproj] Unable to find compatibility version string for object version `70`.

発生条件の特徴:

  • Share Extensionターゲット追加前は正常動作
  • 「Podsディレクトリ削除」「pod deintegrate」等の通常対策が無効
  • プロジェクト再生成やCocoaPodsダウングレードでも解消しない

根本原因

Xcode 16の新機能を使用すると、プロジェクトファイル(.pbxproj)の objectVersion が自動的に 70 に更新 されます。これに対応していないCocoaPodsバージョン(1.16.2等)がこのフォーマットを認識できないことが原因です。

キーポイント

特定操作が objectVersion を変更します:

  • Share Extensionターゲット追加
  • Project Navigatorで「フォルダ作成」(Xcode 16限定機能)
  • Xcode 16のみがサポートするプロジェクト設定

解決方法

方法1:objectVersionの手動変更(推奨)

  1. テキストエディタでプロジェクトファイルを開く
    bash
    open -a TextEdit your_project.xcodeproj/project.pbxproj
  2. objectVersion の値を変更
    diff
    - objectVersion = 70;
    + objectVersion = 60; // または 56, 55等
  3. CocoaPodsを再実行
    bash
    pod deintegrate
    pod install
互換バージョン目安
Xcodeバージョン互換 objectVersion
Xcode 1556
Xcode 1455
Xcode 1354

方法2:Xcodeプロジェクト設定変更

  1. Xcodeでプロジェクトを開く
  2. PROJECTセクションを選択
  3. Build SettingsProject Format を変更
    diff
    - Xcode 16.0
    + Xcode 14.0-compatible
    Project Format設定画面

方法3:Xcode新機能の使用回避

objectVersion が昇格する操作を避ける方法:

  • フォルダ作成時:右クリック→「New Group」を選択
    (※「New Folder」はXcode 16のみの機能)
  • 既存フォルダの変換
    1. Project Navigatorでフォルダを右クリック
    2. Convert to Group を選択
    3. 全フォルダをグループに変換後に pod install 実行

補足知識

なぜこの問題が起きるか?

予防対策

  • CocoaPodsを最新版に更新(ただしFlutterプロジェクトでは要注意)
  • チーム開発時は全メンバーのXcodeバージョンを統一
  • project.pbxproj ファイルの変更をGitで管理

対応後の検証手順

  1. Share Extensionターゲットでアーカイブが成功するか確認
  2. メインアプリとExtension間でデータ共有が機能するかテスト
  3. pod install を複数回実行して再発しないか確認
注意点

objectVersion を下げると一部のXcode機能が制限されますが、Flutterプロジェクトでは通常問題ありません。Xcode 16専用機能が必要な場合のみ最新のCocoaPods使用を検討してください。