Xcode バージョン 4.6.2 (4H10003) に更新し、以前に動作していたアプリケーション プロジェクトをシミュレーターで実行しようとしたところ、次のエラーが発生し、ビルドに失敗しました。
コンパイラ ((clang-425.0.28)) とは異なるブランチ ((clang-425.0.27)) からビルドされた PCH ファイル
何が問題で、どうすれば修正できますか?
Do a Clean of the project; hold Option so that you are cleaning out the whole build folder and intermediates. You might have to quit Xcode and throw away the whole contents of the DerivedData folder by hand in the Finder, as I describe here: How to Empty Caches and Clean All Targets Xcode 4
プロジェクトのBuild Settings
に移動し、 という名前の設定を見つけて、Precompiled Headers Cache Path
そのフォルダーを削除します
を使用してクリーンアップをcommand+shift+k
行い、既存のプロジェクトを再度実行します。
XCode 4.6.2 リリースノートより
既知の問題点
建物
Xcode 4.6.1 以前でビルドされた製品をビルドすると、ビルドは次のようなエラーで失敗します。
コンパイラ ((clang-425.0.28)) とは異なるブランチ ((clang-425.0.27)) からビルドされた PCH ファイル
この問題に対処するには、製品をビルドする前に [製品] > [クリーン] を選択します。13663167
パフォーミング・プロダクト > クリーン・ワークス
上記のすべてを試してみましたが、Xcode UI からは正常に動作しますが、コマンド ラインからxcodebuildを実行すると、まだ失敗していました。
これは、他のライブラリとそのプリコンパイル ヘッダーへの依存が原因でした。コマンド ラインから実行する場合、xcodebuild は次のようにプリコンパイル済みヘッダーを保存/読み取ります。
/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
そのフォルダーをクリーンアップした後、xcodebuild は成功しました。
手動で削除する必要が~/Library/Developer/Xcode/DerivedData/
ありました Clean はうまくいきませんでした。
特に、コマンド ラインからビルドする場合、またはビルド スクリプトがある場合は、xcode ターゲットをクリーンアップするだけでは十分ではありません。このフォルダを削除する必要があります。
プリコンパイル済みヘッダーの正確な場所はプロジェクトで見つけることができます。フォルダー パスの一部はランダム (推測) で、特に /var/folders/xx..xxx/C の後にあります。
Target -> build settings => "Build locations" -> Precompiled headers cached path
ターミナルを実行し、このフォルダーに移動して削除 (コマンドを使用)、
#rm -fr SharedPrecompiledHeaders
「command + shift + k」を使用してプロジェクトをクリーンアップすると、問題ありません。