48
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CocoaPodsを使ってビルドが失敗する時にチェックすること

Last updated at Posted at 2013-07-18

なんかCocoaPodsのバージョン上げてPodsを入れなおしたらビルドが通らなくなった。どうやらPods.xcconfigから参照していたPODS_BUILD_HEADERS_SEARCH_PATHSやPODS_PUBLIC_HEADERS_SEARCH_PATHSが消えてしまいヘッダファイルが見つけられなくなっている。

Integrating with an Xcode projectを確認。CocoaPodsではビルド設定を Pods/Pods.xcconfig に作成して、それをアプリケーションプロジェクトに設定する。

これが正しく適応されているかは、

  1. PROJECT が Pods.xcconfig を使っているか
  2. TARGET が PROJECT の設定を継承しているか

をチェックする。

PROJECTがPods.xcconfigを使っているか

Pods.xcconfigが使われているかは PROJECTの Info > ConfigrationsBased on Configuration File を見ればわかる。これが Pods になっていればok。

pods_2013-07-18_1716.png

TARGETがPods.xcconfigの設定を使っているか

次に Pods.xcconfig の中身からビルド設定を確認する。

コンパイルが失敗する場合はPods.xcconfigのHEADER_SEARCH_PATHSが、リンクが失敗する場合はLIBRARY_SEARCH_PATHS、OTHER_LDFLAGSが適切に設定されていないおそれがある。

例えばTARGETの Build Settings で 直接 Header Search Paths を設定していると PROJECT(Pods.xcconfig)の値が使われないのでヘッダファイルを探せなくなる。この場合はPROJECTの設定を引き継ぐように $(inherited) を追加する。

pods_2013-07-18_1726.png

同様にLIBRARY_SEARCH_PATHSが使われているなら Library Search Pathsを 、OTHER_LDFLAGSが使われているなら Other Linker Flags の値に $(inherited) を追加する。

今回ハマッたようにTARGETでは直接Pods.xcconfigの変数を使わずにPROJECTを継承した方が無難。

48
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?