PCHエラーを修正する方法?


132

でアプリをビルドしようとすると、Xcode次のエラーメッセージが表示されます。

コンパイラ((clang-425.0.27))とは異なるブランチ((clang-425.0.24))からビルドされたPCHファイル

これは以前には起こりませんでしたが、これはXcodeを更新した後の最初のビルドでした。

他のアプリは機能しますが、この特定のアプリは機能しません。

"Precompile Prefix Header"設定をオフにすると動作します。

このエラーを修正し、その設定をオンに保つにはどうすればよいですか?

回答:


246

多くの場合、これはキャッシュの問題です。通常、これはOptionキーを押しながら製品>ビルドフォルダーのクリーンアップ...を選択することで解決できます


3
これでエラーが修正されませんでした。また、完全なクリーンアップを実行し、派生データを削除しました。
ベンS

6
Product>の下にCleanあり、コマンドキーが不要だったことを除いて、私にとってはうまくいきました。(Xcode 4.6.1)
スティーブヘイリー

1
@SteveHaleyがありますが、Product > Cleanそれは完全ではありません。一部の人々はで購入できますがProduct > Clean、ほとんどProduct > Clean Build Folder...は十分であり、他の人々は以下の@Sedes回答に示されているように手動での削除が必要です。
gaige 2013

7
私はその古い質問を知っていますが、上記の修正は私を助けませんでした。Derived Dataを削除してプロジェクトを再度ビルドするだけで正常に動作します。
Ankit Jain

2
rm -rf / ios / buildを実行できますか?
SuperUberDuper 2017

47

DerivedDataプロジェクトのフォルダを削除します。Xcodeの設定->場所で、保存場所を確認してください。


フォルダがDerivedDataどこにあるかとは限らないことに注意することが重要Buildです。これは私に大いに役立ちました。
2016

1
moduleCache内部DerivedDataも削除
whtlnv

他の答えが言うように、最初に「クリーン」を試みる必要があります。これが機能しない場合は、単にDerivedDataフォルダ全体を再帰的に削除するだけです。「軌道から核を出す...確実にする唯一の方法」@whitelionVこれもrm moduleCacheとそこにある他のすべてのものになります。
wcochran

39

と思われる製品>クリーンビルドフォルダ...(Optionキーを押して)は、ほとんどの人々のために動作します。選択した回答を@gaigeで確認してください。

ほとんどの人(私も含む)とは異なり、それでも問題が発生する場合は、XCodeが共有のプリコンパイル済みヘッダーを他の場所に残している可能性があります。私にとっては、次のようなフォルダーにありました。

/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders

SharedPrecompiledHeadersフォルダー全体を削除したところ、問題は解決しました。私はここで他のことには触れないでしょう...


2
これでこの問題は解決しました。私にとっては、コマンドライン駆動のビルドがあるからです。
ThomasW 2013年

2
この場合は、Xcodeビルドのトランスクリプトでそのフォルダーを見つけることができます。私は、文字列「SharedPrecompiledHeaders」を探した
ホセ・マヌエル・サンチェス

6
はい、これは正しい解決策です。特に、コマンドラインからビルドする場合、またはビルドスクリプトがある場合。プリコンパイル済みヘッダーの場所は、ビルド設定の[ビルドの場所]-> [プリコンパイル済みヘッダーのキャッシュパス]にあります。
karim

varディレクトリをどのように見つけますか?
GoldenJoe 14

1
@GoldenJoe Finderを開いてShift-Cmd-G入力/var
Sedes

23

Xcode Preferences-> Locations(wcochranの回答で述べたように)に移動し、DerivedDataフォルダーの名前を変更するだけです。私は単に "DerivedData"から "DerivedData2"に変更しただけで、システムは古い場所の参照を停止しました。他の答えがどれもうまくいかなかったとき、これは私のためにそれを修正しました。写真を参照してください:

ここに画像の説明を入力してください


15

他のオプションはどれも私にとってはうまくいきませんでした、これがそれを修正したものです:

でキャッシュフォルダーを削除しました/Users/(Yourname)/Library/Developer/Xcode/DerivedData/ModuleCache/(名前を変更しても機能します)。

エラーが次のようになっている場合は、エラーで言及されているフォルダを削除してみてください。

PCH was compiled with module cache path '/Users/User/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8', but the path is currently '/Users/Stan/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8


はい、そうです。上記のどれも私にはうまくいきません。言及されているフォルダを削除し、再構築するだけです。
Zhang Buzz

これが正解です。プロジェクトを他のパスに移動した後、DerivedDataの削除/削除が機能しません。
ビルチャン


13

iOSプロジェクトディレクトリで、ModuleCacheフォルダーの構築と削除に移動します。react-native run-iosもう一度実行すると、期待どおりに動作するはずです。まとめ-rm -rf ios/build/ModuleCache


はい、また、native run iosを使用してCLIからではなく、Xcodeからはreact-nativeおよびビルドで機能します。提案されているようにキャッシュを削除すると問題が解決しました。
18年

6

Xcodeをアップグレードした後、複数のプロジェクトでこれを取得していました。Clean Build FolderとCleanは効果がありませんでした-@sedesの回答と@ josema.vitaminewのコメントでうまくいきました。しかし、少しずる賢い方法を使わない限り、注意が必要です。そのため、次のステップバイステップショートカットを使用します。

  1. 失敗したビルドログに移動します
  2. cmd-f "SharedPrecompiledHeaders"を使用してそれを見つけます(これは非常に恐ろしい複雑なコマンドラインの途中になります)
  3. テキスト「Sh​​aredPrecompiledHeaders」とすべての文字をドラッグして選択します。パスパスの開始点に到達するまで(テキストの大きなブロックの真ん中にあります)、たとえば、「/ var / folders / 03」のようになります。 /n71d4r551jv40j5nb8r9fjy80000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
  4. Finderを開く
  5. メニュー:移動->フォルダに移動...
  6. 選択したパスをコピー/貼り付け
  7. 「SharedPrecompiledHeaders」で、すべてのサブフォルダーを削除します(これは安全です:キャッシュされたデータのみです)

...そして今、すべてのプロジェクトは「修正」されますが、ゼロキャッシュで最初に再構築する必要があります(そのため、次のビルドのみが通常より遅くなります)。


5

私の場合、SharedPrecompiledHeadersの下のすべてのファイルをこのようにして取り除き、すべてが正常に動作し始めました。

sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete

これはスクリプトで簡単に使用できるものなので、気に入っています...悪いケースはまだ発見していません[まだ]
Matt

5

Swift Package Managerでプロジェクトをビルドしようとしたときに、このエラーに遭遇しました。

解決策は、.buildディレクトリを削除することです。


4

特に、コマンドラインからビルドする場合、またはビルドスクリプトがある場合、xcodeターゲットのクリーニングでは不十分です。このフォルダを削除しました。

プリコンパイル済みヘッダーの場所は、

Target -> build settings => "Build locations" -> Precompiled headers cached path

このフォルダを削除する

#rm -fr SharedPrecompiledHeaders

ここに画像の説明を入力してください


私のキャッシュパスはビルドフォルダー/ build / ModuleCache /にありました。古い場所からそれを削除しても問題はありませんでした
TheJeff

3

掃除しても直らない場合。これはビルドキャッシュの問題です。Optionキーを押しながら、[製品]> [ビルドフォルダーのクリーンアップ]に移動します。これで問題が解決しました。


3

私の場合、Xcodeはプロジェクトのメインバンドル(/ Users / Path_to_your_project_source_code / YourProjectName / DerivedData)にDerivedDataフォルダーを作成していました

このフォルダーをソースコードバンドルから削除したところ、機能しています。

[Xcode設定]-> [ロケーション]に移動して、DerivedDataが[相対]に選択されているかどうかを確認します。下の写真を見てください ここに画像の説明を入力してください


3

私にとって、これはプロジェクトを別の場所にコピーしたときに常に起こります。これをレポなどにプッシュするためにこれを行います。

古い場所と新しい場所にあるビルドフォルダー(rm -rf Build /)を削除して、機能させる必要があります。Buildフォルダーには新しい場所とは無関係のデータが含まれるため、これは理にかなっています。

この場合、派生データのクリーニングまたはsharedPrecompiledHeadersフォルダーの削除は実際には実行されませんでした。



2

派生データのクリーニングや削除はうまくいきませんでした。うまくいったのは、.pchファイルをタッチ/保存(文字を追加してから削除)して強制的に再構築することです。これでうまくいきました。


これでうまくいきました。SharedPrecompiledHeadersディレクトリ、クリーンビルド、クリーンビルドフォルダーなどを削除しました。これはXcode 5.1上にありました
migs647

PCHファイルはどこにありますか?
TheJeff 2017

2

クリーンビルドを実行してもうまくいかない場合は、でPCHファイルを探して、PCHファイル/var/folders/../SharedPrecompiledHeadersを削除してください。


2
これと同じ答えがあり、@ sedesによって上記の詳細が投稿されています。重複する回答を投稿しないようにしてください。
michaellindahl 2013

2

製品またはビルドフォルダーをクリーニングしてみてください。

SHIFT+ COMMAND+K

OPTION+ SHIFT+ COMMAND+K


2

を介してコマンドラインビルドを実行しているxcodebuild場合は、-derivedDataPath BUILD_DIRオプションが使用されているかどうかを確認してください。その場合、ModuleCache.noindexディレクトリは、通常のXcodeの場所ではなくBUILD_DIRにあります。ModuleCache.noindexディレクトリを削除すると、すべての準備が整います。

私はReact Nativeアプリをビルドしていて、iOSクライアントは通常、React Nativeツールセットを介してコマンドラインからビルドされているため、この状況に遭遇しました。


1

プロジェクトのクリーンアップとビルドフォルダーのクリーンアップを試みましたが、どちらも機能しませんでした。

その後、xCodeを完全に終了し、標準の場所である派生データフォルダー〜/ Library / Developer / Xcode / DerivedDataを削除し、xCodeを再度起動してプロジェクトをビルドしました。

これで問題は解決したようです。


もう少し詳しく説明してもらえますか?
Richard Dally

rm -rf ~/Library/Developer/Xcode/DerivedDataターミナルで実行しているXcodeを閉じてから、Xcodeを開くとうまくいきました。また、ロケーション(Xcode-> Preferences-> Locations)がすべてデフォルトであることも確認しました。
sman591 2016

1

更新しました

これは私にとって完璧に機能しました:

  • プロジェクトまたはワークスペースを閉じます。
  • Finderの場合:⇧shift+⌘cmd+ G
  • 貼り付け:〜/ Library / Developer / Xcode / DerivedData /
  • ModuleCacheフォルダーと空のゴミ箱を削除します。
  • プロジェクトを開きます。
  • クリーン:⇧shift+⌘cmd+ K
  • ビルド:⌘cmd+ B

xCode 7.3.1
リファレンスはこちら


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.