[iOS] Configurationの追加時に発生するCocoaPodsのワーニングを消す方法

2016.03.24

1 はじめに

今回、新規にConfigurationを追加したことで、CocoaPodsのinstall/update時にメッセージが表示されるようになってしまいました。 メッセージはエラーではないので、コンパイルなどには問題ないのですが、ちょっと気持ち悪いのでなんとか消そうと試行錯誤しました。

2 ワーニング発生

(1) 試験用アプリの作成

試験用のアプリケーション(ここでは名前をSampleAppとしました)を作成し、CocoaPodsを利用してライブラリを組み込みます。

target 'SampleApp' do
    pod 'AFNetworking', '~> 3.0'
end

pod installして作成されたワークスペースで開くと下記のようになっています。

002

(2) Build Configuration の追加

ここで、PROJECTを選択してinfo - Configurations で1つコンフィグレーションを追加します。 (この時、Releaseのコンフィグレーションから複製して作成しました)

002

続いて、Edit Scheme..を開いて、作成したConfigurationを使用するようにします。

003

(3) pod install

ここで一旦Xcodeを閉じて、pod installで新規に作成したConfigurationにもCocoaPodsの設定を反映させます。

$ pod install
[!] Unable to load a specification for the plugin `/Library/Ruby/Gems/2.0.0/gems/cocoapods-deintegrate-1.0.0.beta.1`
Updating local specs repositories

CocoaPods 1.0.0.beta.6 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
Downloading dependencies
Using AFNetworking (3.0.4)
Generating Pods project
Integrating client project
Sending stats
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `SampleApp` to `Pods/Target Support Files/Pods-SampleApp/Pods-SampleApp.sample.xcconfig` or include the `Pods/Target Support Files/Pods-SampleApp/Pods-SampleApp.sample.xcconfig` in your build configuration.

ここで最後に、「[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set.」で始まるメッセージが表示されます。

エラーでは無いので、このままでも一応動作するのですが、いつまでも、このままだとpod installする度にこのメッセージを見なければならなくなります。

そして、これが、今回、対処したいワーニング?です。

ちなみに、起動すると、Podsプロジェクトの方にも、自動的に同じ名前のConfigurationが生成されており、コンパイル・実行も問題ありませんでした。

005

3 対処

メッセージの意味は、CocoaPodsは、DebugとReleaseのxconfigだけを自動生成するが、その他は、自分でやってねと言うことらしい。

プロジェクトの中のPodsを開くと、中には、新く生成されたxconfigがありますが、名前的には、残念ながらDebugとReleaseの2つです。

006

しかし、フォルダの中を確認してみると、なんか生成はされているみたいです。

007

そこで、このファイルをプロジェクトに入れました。

008

そして、Based on Configuration Fileで、追加したファイルを使用するように設定しました。

009

以上の操作で、pod installでも、問題のメッセージは表示されなくなりました。

4 最後に

CocoaPodsを使用する場合、ConfigurationとCocoaPodsの関係をよく理解する必要があります。 なお、今回のワーニングは、xconfigの複製が、ちゃんと行われている事から考えると、近々対処されるのかも知れません。

5 参考資料


CocoaPodsでカスタムコンフィギュレーションを使う
CocoaPodsで複数ターゲット指定した時の設定
Cocoapods Warning - CocoaPods did not set the base configuration of your project because because your project already has a custom config set