Skip to content

Xcode 16のCocoaPods「Unknown ISA PBXFileSystemSynchronizedRootGroup」エラーの解決法

問題の理解

Xcode 16で新しいiOSプロジェクトを操作中にpod initを実行すると、以下のエラーが発生します:

bash
RuntimeError - `PBXGroup` attempted to initialize an object with unknown ISA `PBXFileSystemSynchronizedRootGroup`

これはXcode 16の新しいプロジェクト構造が原因で発生します。Xcode 16ではデフォルトでファイルシステムと同期する特殊なグループ(PBXFileSystemSynchronizedRootGroup)が使用されますが、古いバージョンのCocoaPods(例:1.15.2)はこの新しい形式を認識できません。

発生条件:

  • Xcode 16以降を使用
  • CocoaPods 1.15.2など最新ではないバージョン
  • macOS 15以降

解決方法

方法1: フォルダをグループに変換(推奨)

最も安全かつ公式な解決法です。

  1. Xcodeでプロジェクトを開く
  2. プロジェクトナビゲーターで青いフォルダアイコンを右クリック
  3. 「Convert to Group」 を選択
  4. 変更を保存しXcodeを終了
  5. ターミナルでpod initを再実行

[フォルダをグループに変換する手順]

⚠️ 注意: メインプロジェクトとテストターゲットの両方でこの操作が必要です。すでに変換済みの場合はメニューに「Convert to Folder」と表示されます。

方法2: project.pbxprojファイルを直接編集

フォルダ変換で解決しない場合の代替手段です。

bash
# 1. バックアップ作成
cp YourProject.xcodeproj/project.pbxproj project.pbxproj.bak

# 2. ファイルをテキストエディタで開く
open -a TextEdit YourProject.xcodeproj/project.pbxproj

以下の変更を実行します:

diff
# 削除する行 (存在する場合)
- minimizedProjectReferenceProxies = 1;
- preferredProjectObjectVersion = 77;

# 置換するテキスト
- PBXFileSystemSynchronizedRootGroup
+ PBXGroup

# 変更するバージョン番号
- objectVersion = 77;
+ objectVersion = 56;
bash
# 変更後に実行
pod deintegrate
pod cache clean --all
pod init

方法3: CocoaPodsキャッシュクリア

上記の方法と併用すると効果的です。

bash
# キャッシュ削除
pod cache clean --all

# Xcodeビルドデータ削除
rm -rf ~/Library/Developer/Xcode/DerivedData

サポートされている環境の調整

CocoaPodsを最新版に更新すると根本的に解決できます:

bash
# プレリリース版のインストール(Xcode 16対応)
sudo gem install cocoapods --pre

# Ruby環境の更新(必要なら)
brew install rbenv
rbenv init
rbenv install 3.2.2
diff
- CocoaPods: 1.15.2
+ CocoaPods: 1.16.0.beta.1

トラブルシューティング

ファイルが見えなくなる問題が発生した場合

project.pbxprojを編集後にファイル表示に問題がある時は:

  1. バックアップからproject.pbxprojを復元
  2. 方法1の「フォルダをグループ変換」のみで解決できないか再挑戦

エラーが複数のターゲットで発生する場合

プロジェクト内の各青いフォルダ(メインターゲット、テストターゲット)に対して個別に「Convert to Group」操作が必要です。

根本原因の技術的解説

エラーメッセージPBXFileSystemSynchronizedRootGroupはXcodeがファイルシステム同期機能を強化した結果生じました。

  • Xcode 15以前: PBXGroup(標準グループ)
  • Xcode 16以降: PBXFileSystemSynchronizedRootGroup(同期機能付きグループ)

CocoaPodsが新しいグループ形式をサポートしていないため、以下の変更が必要です:

  • 互換性のあるグループ構造に戻す(方法1)
  • プロジェクトファイルをダウングレード(方法2)

ベストプラクティス

  1. フォルダ変換を最初に試みる - ファイル編集より安全
  2. バックアップ習慣 - プロジェクトファイル変更前に必ずコピー作成
  3. CocoaPodsアップデート - プレリリース版で最新機能を利用
  4. プロジェクト新規作成時の注意 - Xcode 16使用時は事前にpod initをテスト

これらの解決策により、Xcode 16とCocoaPodsの互換性問題が解消し、スムーズに依存関係管理を行えます。