Xcode 6.2 でビルド時に malformed or corrupted AST file エラーが発生しました。
プログラミングで出逢った出来事
Xcode 6.2 でいつものようにアプリをビルドしていたところ、ある日から突然 malformed or corrupted AST file というビルドエラーが発生するようになりました。
それを解消してみたときのお話です。
数日前まで普通にビルドできていたはずの iOS アプリプロジェクトが、ある日突然、次のようなエラーでビルドできなくなりました。
fatal error: malformed or corrupted AST file: 'Unable to load module "/var/floders/5v/2sqpwby908b2x1hs0b1qqqzh0000gn/C/org.llvm.clang/ModuleCache/1252948IFQJS8/Foundation-1NGEU7SD90Y38.pcm": module file not found'
なにやら知らないファイルが指摘されて意味不明なことを言われています。そもそも何か変なことをした心当たりもないので、こういうときはクリーンビルドが効くかと思ってやってみたものの、それは効果がありませんでした。
ログビューで詳しく確認してみると、次のようになっていました。
エラーメッセージの直後に表示されていたnote
には "after modifying system headers, please delete the module cache at '/var/floders/5v/2sqpwby908b2x1hs0b1qqqzh0000gn/C/org.llvm.clang/ModuleCache/1252948IFQJS8'" と書かれていたので、このフォルダーを削除しようとしたのですけど存在せず、打つ手なしな感じです。
静的アナライザーを無効にしたら問題解消
他に何かヒントになるものがないか探してみると、エラーメッセージの直前あたりに/StaticAnalyzer/
という言葉が表示されているのに気がつきました。
静的アナライザーといえば、このプロジェクトではビルド時に自動で静的アナライザーを実行する設定にしてあります。
この設定は1年以上も前から行っているものでしたが、これがなんとなく心当たりに思えたので、試しに無効化してみることにしました。
ビルド時の静的アナライザーを実行する設定は、Build Settings
のStatic Analyzer - Analysis Policy
カテゴリにあるAnalyze During 'Build'
で行えます。
ここをYes
に設定してあったので、これをNo
に変更します。そうしてからビルドを再実行してみたところ、無事にエラーが解消されました。どうして今頃になってこれが影響し出したのかは不明です。