Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
51
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@makoto_kw

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

なんか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を継承した方が無難。

51
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
51
Help us understand the problem. What is going on with this article?