Xcodeバージョン4.6.2(4H10003)に更新し、以前に機能していたアプリケーションプロジェクトをシミュレータで実行しようとすると、次のエラーが発生してビルドが失敗しました。
コンパイラ((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル
何が問題で、どうすれば修正できますか?
Xcodeバージョン4.6.2(4H10003)に更新し、以前に機能していたアプリケーションプロジェクトをシミュレータで実行しようとすると、次のエラーが発生してビルドが失敗しました。
コンパイラ((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル
何が問題で、どうすれば修正できますか?
回答:
プロジェクトのクリーンアップを行います。オプションを押したままにして、ビルドフォルダー全体と中間ファイルをクリーンアップします。ここで説明するように、Xcodeを終了し、FinderでDerivedDataフォルダーの内容全体を手動で破棄する必要がある場合があります。キャッシュを空にしてすべてのターゲットをクリーンにする方法Xcode 4
既知の問題点
建物
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は成功しました。
sudo find /private/var/folders -name SharedPrecompiledHeaders
結果のディレクトリを空にしました。魅力のように働いた。
特に、コマンドラインからビルドする場合、またはビルドスクリプトがある場合、xcodeターゲットのクリーニングでは不十分です。このフォルダを削除する必要があります。
プリコンパイル済みヘッダーの正確な場所はプロジェクトで確認できます。フォルダーパスの一部はランダム(おそらく)、/ var / folders / xx..xxx / Cの後にあります。
Target -> build settings => "Build locations" -> Precompiled headers cached path
ターミナルを実行し、このフォルダーに移動して削除(コマンドを使用)、
#rm -fr SharedPrecompiledHeaders