日々精進

新しく学んだことを書き留めていきます

cocoapodでライブラリをインストールした後ビルドするとエラー「Pods was rejected as an implicit dependency for 'libPods.a' because its architectures 'armv7' didn't contain all required architectures 'armv7 armv7s'」

cocoapodでライブラリをインストールした後ビルドすると以下のエラーが出た。

Pods was rejected as an implicit dependency for 'libPods.a' because its architectures 'armv7' didn't contain all required architectures 'armv7 armv7s'

下記記事によると、Build Settingのarchitecturesの設定が間違っていることが原因とのことだったが、architecturesを直しても解決しなかった。
Objective-C - CocoapodsとXcode5の組み合わせでエラー出た+解決した - Qiita


Fatバイナリがどんなアーキテクチャ用のバイナリを含んでいるかを調べてみたところ、やっぱりarmv7用バイナリのみ。

lipo -info libPods.a

因みにarmv7s用バイナリが入っていると(cputype (12) cpusubtype (11))という文字列が出る。なんだこれ。。


最終的にBuild SettingのBuild Active Architecture OnlyをNOにすると、直った。
原因は以下だったっぽい。
・アプリのプロジェクトの方のBuild Active Architecture OnlyがすべてNOになっていた
PodsプロジェクトのBuild Active Architecture OnlyはデフォルトではdebugはYESになっている
・この状態では、たとえば、iPhone4を選択してビルドした時、アプリ側はarmv7s,armv7の両方用にビルドするが、Podsの方はarmv7用にしかビルドしないのでarmv7sバイナリがないよエラーになる


結構はまった。。ビルドプロセスは謎が多いです。