今までとは別のプロジェクトにアサインされたので、いつものように開発環境を整えようとpod install
をしてRealmをインストールしようとしたところ、謎のエラーが出てビルドができなくなりました。
謎のエラーとは'impl/async_query.hpp' file not find.というコンパイルエラーです。
実際にPodsディレクトリのソースファイルをみてみると*.hpp
がありませんでした。
さすがにRealmチームがビルドの通らないモノにバージョンをつけて配布したりしないだろうと思い検索したところ同じ現象が発生している方を何人か見つけました。
解決方法
解決したので解決方法を上の方に書いておきます。
直接的な原因はわかりませんがここ最近CocoaPodsの調子が悪くインストールに物凄く遅かったので、CocoaPods内部のキャッシュが異常な状態になっていたのではないかと思います。
CocoaPods自体のキャッシュを削除して、プロジェクト直下のPodsディレクトリを削除して、再度pod install
をおこないました。
$ rm -rf ~/Library/Caches/CocoaPods/ $ rm -rf Pods $ pod install
僕の環境では、この対応でRealmがエラーを出すことがなくなりました。
以下、エラーが出ている間に試したことを順番に書いています(あまり有益な情報はありません)。
経緯
Realmでコンパイルエラーが発生した時点でのPodfile.lockは下記のようになっていました。
PODS: - Realm (0.98.3): - Realm/Headers (= 0.98.3) - Realm/Headers (0.98.3) - RealmSwift (0.98.3): - Realm (= 0.98.3) - Result (1.0.2) SPEC CHECKSUMS: Realm: c6a7d00221a2d5177810a674aebd40c5e0b70b0f RealmSwift: d6ecad6e4c2a645d6ac956c2c7e9efb375f39c31 Result: dd3dd71af3fa2e262f1a999e14fba2c25ec14f16
こんなツイートが話題になっていました。
おまえら負荷かけすぎなんだよって怒られてる https://t.co/844HRPeSYr
— Yoichi Fujimoto (@wozozo) March 8, 2016
そういえば前回pod install
した時にものすごく時間が掛かったので影響を受けているような気がします。念のため、CocoaPodsのキャッシュを削除しました。
$ rm -rf ~/Library/Caches/CocoaPods/ $ rm -rf Pods
この状態でログ出力させてpod install --verbose
をしてみました。
-> Installing Realm (0.98.3) > Git download (中略) > Running prepare command $ /bin/bash -c set -e sh build.sh cocoapods-setup core is not a symlink. Deleting... Downloading dependency: core 0.96.2
ここまで出て15分くらい止まったままになっています。
(追記)そこから10分くらい待っていたらインストールが終わりました。普通にビルドができるようになりました。