web-dev-qa-db-ja.com

PCHエラーを修正するには?

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

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

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

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

"Precompile Prefix Header"設定をオフにすると、機能します。

このエラーを修正し、その設定を維持するにはどうすればよいですか?

125
Macro206

多くの場合、これはキャッシュの問題です。通常、Optionキーを押しながらProduct> Clean Build Folder ...を選択することで解決できます

235
gaige

[製品]> [ビルドフォルダーのクリーン...](Optionキーを押した状態)は、ほとんどの人で機能するようです。 @gaigeが選択した回答をご覧ください。

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

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

SharedPrecompiledHeadersフォルダー全体を削除したところ、問題が解決しました。私はここで他にあまり触れませんが...

38
Sedes

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

35
wcochran

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

enter image description here

19
Alyoshak

Finderのプロジェクトの場所からBuildフォルダーとDerivedDataフォルダーを削除するとうまくいきました。

13
spfursich

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

/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

11
Stan Tatarnykov

Iosプロジェクトディレクトリで、buildに移動し、ModuleCacheフォルダーを削除します。 react-native run-iosを再度実行すると、期待どおりに動作するはずです。要約-rm -rf ios/build/ModuleCache

11
Ritik Rishu

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

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

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

6
Adam

私の場合、この方法でSharedPrecompiledHeadersの下にあるすべてのファイルを取り除き、すべてが正常に動作し始めました:

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

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

プリコンパイルされたヘッダーの場所は、

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

このフォルダを削除するには、

#rm -fr SharedPrecompiledHeaders

enter image description here

4
karim

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

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

[Xcodeの設定]-> [場所]に移動し、DerivedDataが[相対]に選択されているかどうかを確認します。下の写真を参照してください enter image description here

3
Dilip Saket

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

3
Vardhan

Swift Package Managerを使用してプロジェクトをビルドしようとすると、このエラーが発生しました。

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

2
Zigii Wong

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

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

2
phatmann

「shift + command + C」を押し続けると、ビルドが成功します

2
Peter Zhu

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

2
Jonathan Lin

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

2
Alfie Hanssen

製品またはビルドフォルダーのクリーニングを試すことができます。

SHIFT + COMMAND + K

OPTION + SHIFT + COMMAND + K

2
Mateus

更新済み

これは私にとって完璧に働いた:

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

xCode 7.3.1
reference here

1

私はプロジェクトをきれいにし、ビルドフォルダをきれいにしてみましたが、どちらも機能しませんでした。

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

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

1
RM de Vos

私にとって、これはプロジェクトを別の場所にコピーするときに常に発生します。リポジトリまたは何かにプッシュするためにこれを行います。

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

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

1
TheJeff

DerivedDataを削除して、私のために働きました。

0
KAUSHIK PARMAR