Xcodeバージョン4.6.2(4H10003)に更新したばかりで、以前に動作していたアプリケーションプロジェクトをシミュレータで実行しようとすると、次のエラーが発生し、ビルドに失敗しました。
コンパイラー((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル
何がうまくいかず、どうすれば修正できますか?
プロジェクトのクリーンを行います。 Optionを押したままにして、ビルドフォルダーと中間体全体を削除します。ここで説明するように、Xcodeを終了し、FinderでDerivedDataフォルダーの内容全体を手で捨てる必要がある場合があります。 キャッシュを空にしてすべてのターゲットをクリーンアップする方法Xcode 4
プロジェクトのBuild Settings
に移動し、Precompiled Headers Cache Path
という名前の設定を見つけて、そのフォルダーを削除します
command+shift+k
を使用してクリーンアップを実行し、既存のプロジェクトを再度実行します。
既知の問題点
建物
Xcode 4.6.1以前でビルドされた製品をビルドすると、ビルドは次のようなエラーで失敗します。
コンパイラー((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル
この問題に対処するには、製品をビルドする前に[製品]> [クリーン]を選択します。 13663167
製品の実行>クリーンワーク
上記のすべてを試してみましたが、Xcode UIからは正常に動作しますが、xcodebuild from command lineを実行したときはまだ失敗していました。
これは、他のライブラリとそのプリコンパイルヘッダーへの依存関係が原因でした。コマンドラインから実行すると、xcodebuildは次のようにプリコンパイル済みヘッダーを保存/読み取りします。
/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.Apple.Xcode.501/SharedPrecompiledHeaders
そのフォルダーをクリーンアップした後、xcodebuildは成功しました。
特に、コマンドラインからビルドする場合、またはビルドスクリプトがある場合は、xcodeターゲットをクリーニングするだけでは不十分です。このフォルダを削除する必要があります。
プリコンパイル済みヘッダーの正確な場所はプロジェクト内で確認できます。フォルダーパスの一部はランダムです(推測)、特に/var/folders/xx..xxx/Cの後です。
Target -> build settings => "Build locations" -> Precompiled headers cached path
ターミナルを実行し、このフォルダーに移動して削除します(コマンドを使用)。
#rm -fr SharedPrecompiledHeaders
手動で削除する必要があった~/Library/Developer/Xcode/DerivedData/
掃除は私にはうまくいきませんでした。
「command + shift + k」を使用してプロジェクトをクリーンアップすれば、問題ありません。
プロジェクトをきれいにして実行する
製品->クリーン、そして実行。