Xcode「Build input file cannot be found」エラーの解決方法
問題の説明
Xcodeでプロジェクトをビルドする際、以下のエラーが発生することがあります:
Build input file cannot be found:
'/パス/To-Do List-Bridging-Header.h'.
Did you forget to declare this file as an output of a script phase or custom build rule which produces it?
このエラーは主に次の状況で発生します:
- ブリッジングヘッダー(.h)などのファイルを移動または削除した後
- プロジェクト名を変更した後
- CocoaPodsの依存関係を更新した後
- ファイル参照がプロジェクト設定に残っているが実際のファイルは存在しない場合
効果的な解決策
1. ブリッジングヘッダーのパスを更新する
ファイルを移動した場合、Xcodeの設定で正しいパスを指定する必要があります。
手順
- Xcodeでプロジェクトを開く
- ターゲットを選択 → 「Build Settings」タブ
- 検索ボックスに「Objective-c Bridging Header」と入力
- 「Swift Compiler - General」セクションのパスを更新
- 正しいファイルパスを入力(例:
$(SRCROOT)/ProjectName/Folder/BridgingHeader.h
)
2. プロジェクトから不要なファイル参照を削除する
ファイルを削除した後も参照が残っている場合:
手順
- Xcodeで
Cmd + Shift + F
(全体検索)を実行 - エラーメッセージにあるファイル名を検索
- 見つかった参照を右クリック → 「Delete」を選択
- プロジェクトをクリーン(
Cmd + Shift + K
) - リビルド(
Cmd + B
)
3. CocoaPods関連の問題を解決する
bash
# 依存関係を再インストール
flutter clean # Flutterプロジェクトの場合
flutter pub get
cd ios
pod deintegrate # 既存のPodsを完全削除
pod install # 再インストール
注意
CocoaPodsを使用後は.xcworkspace
ファイルでプロジェクトを開きましょう。.xcodeproj
では正しく依存関係が読み込まれません。
4. 派生データ(Derived Data)をクリアする
一時ファイルの不整合が原因の場合:
手順
- Xcodeを終了
- メニューから「Xcode」→「Preferences」→「Locations」タブ
- 「Derived Data」のパスをコピー
- Finderで
Cmd + Shift + G
→ パスを貼り付け - フォルダ内の全ファイルを削除
- Xcode再起動 → クリーン&ビルド
5. プロジェクト名変更時の対処法
プロジェクト名を変更した後にエラーが発生する場合:
text
project.pbxproj ファイル内の変更前プロジェクト名:
OLD_PROJECT_NAME → NEW_PROJECT_NAME
OLD_PROJECT_NAME_ANDROID → NEW_PROJECT_NAME_ANDROID
重要
.pbxproj
ファイルを編集する前には必ずバックアップを作成してください。ファイル形式が壊れるとプロジェクトが開けなくなる可能性があります。
6. Info.plist設定の確認
誤ってInfo.plistを削除した場合:
- ターゲット → 「Build Settings」→「Packaging」
- 「Info.plist File」のパスを一時的に空にする
- 「Generate Info.plist File」を「YES」に設定
予防策とベストプラクティス
- ファイル移動時: Xcode内のプロジェクトナビゲータでファイルをドラッグ&ドロップ(Finderで直接移動しない)
- プロジェクト改名時: Xcodeの「Rename」機能を使用(手動でファイル名を変更しない)
- CocoaPods使用時:
pod install
実行後は必ずプロジェクトを再起動 - 定期的なメンテナンス: 未使用ファイルや参照のクリーンアップ
サポートされていない解決法の警告
WARNING
以下の方法は 根本解決にならない可能性が高い ため推奨しません:
- 削除したファイルを元の場所に戻す(一時的な回避策)
- 実行中のシミュレータを閉じる(本問題と無関係)
- 依存モジュールのマクロ設定をリセット(根拠が不明)
解決フローチャート
結論
「Build input file cannot be found」エラーは主にファイルパスの不一致が原因です。最も効果的な解決策は:
- ビルド設定でブリッジングヘッダーの正しいパスを確認
- プロジェクトから無効なファイル参照を削除
- CocoaPods使用時は
pod install
で依存関係を再構築
プロジェクト構造変更時はXcode内で操作する習慣をつけることで、このエラーを効果的に予防できます。