【クソ食らえ】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 Location を Unique に変更します。
めっちゃ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 や ブランチ切り替えているうちに、できなくなっちゃってたんですよねー……。
ひとまず、ビルドできるようになってよかった。
めでたしめでたし!
Author And Source
この問題について(【クソ食らえ】CocoaPods プロジェクトで "〜 .h" file not found と戦う), 我々は、より多くの情報をここで見つけました https://qiita.com/sussan0416/items/1ad61843ad7a17753eca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .