Xcode Cloud 設定ファイルエラーの解決
React NativeプロジェクトでXcode Cloudのビルド設定中に発生するunable to open configuration settings file
エラーは、主に依存関係のインストール不足やCocoaPods関連の設定不備が原因です。代表的なエラーメッセージ:
unable to open configuration settings file
Pods-XXX.debug.xcconfig:1
エラーが発生する理由
Xcode Cloudのバーチャルマシン環境では、デフォルトでNode.js/Yarn/CocoaPodsなどの依存関係がインストールされていません。このため.xcconfig
ファイルが正常に生成されず、ビルドが失敗します。
🛠 根本的解決法:ビルド前スクリプトの設定
ステップ1: スクリプトディレクトリの作成
プロジェクトルートにci_scripts
フォルダを作成:
プロジェクトルート/
├── ci_scripts/
├── ios/
└── ... (その他ファイル)
ステップ2: 必須スクリプトファイルの追加
以下の3ファイルをci_scripts
内に作成:
zsh
#!/bin/zsh
set -e # エラー時に停止
set -x # デバッグログ有効化
echo "🧩 Stage: Post-clone is activated .... "
brew install node yarn cocoapods fastlane # 依存関係インストール
cd .. && yarn && pod install # プロジェクト依存関係解決
echo "🎯 Stage: Post-clone is done .... "
exit 0
zsh
#!/bin/zsh
echo "🧩 Stage: PRE-Xcode Build is activated .... "
# 追加スクリプトが必要な場合はここに記述
echo "🎯 Stage: PRE-Xcode Build is done .... "
exit 0
zsh
#!/bin/zsh
echo "🧩 Stage: POST-Xcode Build is activated .... "
# ビルド後の処理(通知設定等)が必要な場合はここに記述
echo "🎯 Stage: POST-Xcode Build is done .... "
exit 0
✅ スクリプト作成後のディレクトリ構造
プロジェクトルート/
├── ci_scripts/
│ ├── ci_post_clone.sh
│ ├── ci_pre_xcodebuild.sh
│ └── ci_post_xcodebuild.sh
├── ios/
│ ├── Podfile
│ └── Pods/
├── ... (その他ファイル)
ステップ3: スクリプトの権限設定(ローカル検証時)
ターミナルで実行権限を付与:
bash
chmod +x ci_scripts/*.sh
🔧 代替解決策と補足アプローチ
1. CocoaPodsの再インストール(スクリプトで解決しない場合)
bash
brew uninstall --cask cocoapods
brew install cocoapods
brew link --overwrite cocoapods
2. 手動でのpod install
実行(緊急時対応)
プロジェクトのios/
ディレクトリで実行:
bash
cd ios
pod install
3. プラグイン競合の確認
特定のCapacitorプラグインが原因の可能性あり:
bash
npm uninstall 問題のプラグイン名 # 疑わしいプラグインを削除
npx cap sync ios # iOS設定の同期
検証手順のアドバイス
- Xcode Cloudのログでエラー発生箇所を特定
Pods/Target Support Files
内の.xcconfig
ファイルを確認- 問題のあるプラグインを特定後、順次アンインストールして検証
✨ 効果的な解決法の推奨フロー
技術的背景:Xcode Cloudの仕組み
項目 | 説明 |
---|---|
バーチャルマシン | クリーン環境のため、毎回依存関係をインストールする必要あり |
ビルドステージ | post-clone → pre-xcodebuild → ビルド実行 → post-xcodebuild の順 |
注意事項
pod install
は必ず依存関係変更後に実行- Node.jsバージョン管理には
nvm
を推奨(Brewで直接インストールも可) - Fastlane導入により配布処理を自動化可能
最終アプローチ:上記スクリプト設定で90%以上のケースが解決。環境固有の問題が残る場合はbrew doctor
で環境チェックを実施。