【クソ食らえ】CocoaPods プロジェクトで "〜 .h" file not found と戦う


※ 現在進行形のため、これがベストソリューションかどうかは、不明です。

CocoaPodsで入れたはずのライブラリが見つからない現象。
ググっても、ググっても、決定打になる解決策がなかなか見つからない……。

で、結局何をしたら直るのか

あらかじめ断っておくと、この方法ですべての人が解決するわけではないです
あしからず……。
私の場合の決定打は、後半に記載。

開発環境

  • Xcode 8.1
  • CocoaPods 0.39.0 → 1.1.1 (耐えかねてアップデート)

解決方法

結局のところ、以下の方法を試した所、うまくビルドできるようになりました。

CocoaPods を 1.1.1 にアップデート

CocoaPodsは、それまで0.39.0を使用していたのですが、1.1.1にアップデートしました(いまさら?)。
アップデートした後は、Podsディレクトリを一旦、綺麗さっぱり削除して、pod installし直しました。

部署の先輩の端末では、これでうまくいったの。
cd ~/.cocoapods/repos/master
git checkout master

sudo gem install cocoapods
cd {プロジェクトのディレクトリ}
pod deintegrate {プロジェクトの}.xcodeproj
rm -fr Pods
pod install

でも、僕はうまくいかなかった。。。

Pods ディレクトリを Git 管理下に入れる

それならばと、pod install済みのPodsディレクトリもGit管理することを試しました。
つまり、ビルドできる環境をまるごとPullしちゃえばいいってこと!いけそう!!

100MB近くなったブランチをpullする...
ビルドする...
"....... .h" file not found.
\(^o^)/

うまくいかなかった!!!!
もちろん、一部ではPodsディレクトリもGit管理した方がいいよ〜という開発チームもありますが、うちではうまくいかなかった!
(端末名や、プロジェクトのディレクトリがそれぞれ違うからなのかなぁ……)

Build Location を Unique に変更 (← 決定打

(どういうわけか、)うまくいきました!!

Unique に変更

まず、Workspace Settings から、Build LocationUnique に変更します。

めっちゃClean する

Derived Dataも含めてCleanします!!
Cmd + Option + Shift + kです!

普通のCleanと、どう違うのかな??

pod installする

pod installします

ビルドする

できました!!!

最終的には、コチラのStack Overflowを参考にしながら作業していました。
http://stackoverflow.com/questions/37377450/cocoapods-1-0-header-files-not-found

で、結局、原因は何なのか……

わかりません。
でも、チームそれぞれのホームディレクトリの名前の違いや、プロジェクトファイルを置いているディレクトリの違いなどが影響しているのかなと予想しています。。。

CocoaPodsむずかしい……。
でも、アップデートできてよかったかも!!


それにしても、ほんっとCocoaPodsはくせ者で、定期的に苦しめられてきました。
【クソ食らえ】CocoaPodsとApple Mach-O Linker Errorとlinker command failed with exit code 1でどハマり

そして今回も……。

見つからない……。

見つからない……!!!

うまくビルドできても、また pod install や ブランチ切り替えているうちに、できなくなっちゃってたんですよねー……。

ひとまず、ビルドできるようになってよかった。
めでたしめでたし!