Cocos2d v3 CocoaPodsのインストールと設定

# 前回まで
[Cocos2dの導入](http://qiita.com/syou007/items/9e6202a88495757dda5f)を行い、[出来上がったもの](http://qiita.com/syou007/items/1cd8b0d2deeb5acd38f1)を確認しました。

# 今回行う事
今回はSpriteBuilderとXCodeを連携するのですが、その前にCocoaPodsを導入します。
CocoaPodsを先に導入しておけば、今後使用するライブラリーの導入が楽になります。
※今回は`iOS7.0以降`を対象にするため`Cocoa Touch Framework`は使用しません。

# CocoaPodsの導入
CocoaPodsはすでにインストール済みであることを前提に話を進めます。
前回まで作成した`ShootBalloon.spritebuilder`をXCodeで開いている方は閉じてください。

## Podファイルの作成
その後、`ShootBalloon.spritebuilder`の直下に`Podfile`を作成して以下のように記載してください。

```lang:Podfile
platform :ios, '7.0'

pod 'GoogleAnalytics-iOS-SDK'
pod 'Google-Mobile-Ads-SDK', '~> 7.0'
pod 'NendSDK_iOS'
```

ここでは今後使用する予定である、

* アクセス状況確認用の`GoogleAnalytics`
* Google広告用の`AdMob`
* 日本最大手広告の`AppBank(Nend)`

上記のライブラリーを事前に入れておきます。

## Podのインストール
```
$> cd ShootBalloon.spritebuilder/
```

でルートディレクトリに移動して

```
$> pod install
```

を行って各ライブラリーを入れてください。

インストールが終わると以下のエラーが表示されるので、指示通り解決していきます。

```
[!] The `ShootBalloon iOS [Debug]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `ShootBalloon iOS [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `ShootBalloon iOS [Release]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `ShootBalloon iOS [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.
```

## ワークスペースを開きます。
今までは`ShootBalloon.xcodeproj`ファイルを開いてましたが、Podsインストール後からは`ShootBalloon.xcworkspace`ファイルができているので、それを`XCode`で開きます。

## 設定を変更します。
`Build Settings`を開いてて`HEADER_SEARCH_PATHS`を検索します。

![setting.png](https://qiita-image-store.s3.amazonaws.com/0/79216/6026bfa0-71ce-5636-a97f-ee17bbea568c.png)

こちらに`$(inherited)`を追加します。

![setting2.png](https://qiita-image-store.s3.amazonaws.com/0/79216/8a60ae7f-bbb0-a980-88ad-53153641ff68.png)

同じ要領で`OTHER_LDFLAGS`にも追加します。

## 念のため再度確認します。

```
$> pod install
```

こちらのコマンドをもう一度実行して上記のワーニングが出てなければ完了です。

# Swiftでこれらのファイルを使えるようにする。
[前回](http://qiita.com/syou007/items/1cd8b0d2deeb5acd38f1)説明をした`Bridging-Header.h`の一番下に以下の記述を行います。

```lang:Bridging-Header.h
...前略

// AdMob
@import GoogleMobileAds;

// google analytics
#import "GAI.h"
#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"

// Nend
#import "NADView.h"
```

これで準備完了です。
まだこれらのライブラリは使用しませんが、事前に設定しておきます。

# なぜ先にCocoaPodsを設定するのか
今回のような小さいプロジェクトではいつ追加しても問題ないのですが、ある程度の規模のプロジェクトで後になってCocoaPodsを導入すると問題が発生する場合があります。
個々で導入したライブラリと競合して動かなかったり、メンバー毎にライブラリの入れ方が違ってしまうことがあるため初めにライブラリ管理方法を共有することが重要だと僕は考えてます。

特にスマホ開発はStrutsやRailsなどのようなフレームワークが無いため、メンバー固有のプログラムが入りやすく汚くなりがちです。
なので、僕はできるだけ初めに環境を整えてその環境を共有させてプロジェクトを進めて行くことを提唱してます。

# 次回は
[SpriteBuilderとXCodeで画面遷移する](http://qiita.com/syou007/items/9bebb01aff70dec0e3f3)について書いてます。