Objective-Cのライブラリ管理ツールCocoaPodsを導入してみた

CocoaPodsって何?

CocoaPods は Objective-C のライブラリ管理ツール。Ruby の Bundler みたいなもの。

開発中の iPhone アプリでカレンダーが使いたくなって TapkuLibrary を README を見ながら導入したんだけど、プロジェクトにファイルを追加したり設定を変更したりと苦労した。

ライブラリを追加するたびに毎回同じような思いをするのは嫌だと思っていたところに、CocoaPods の存在を知ったんで飛びついてみる。

CocoaPods のインストール

CocoaPods は Ruby の gem として提供されている。以前は MacRuby が必要だったみたいだけど、今ではシステムの Ruby でもインストールできるようになった。

gem install cocoapods

を実行するとインストールされる。rbenv を使っている場合は忘れず rbenv rehash すること。

pod コマンドが使えるようになるので

pod setup

を実行して CocoaPods をセットアップする。

iOS プロジェクト作成

Xcode を起動して、新規に iOSプリプロジェクト作成する。名前はとりあえず HelloPods にでもしておく。

プロジェクト作成したら Xcode はいったん閉じる。

CocoaPods を使ってライブラリをインストール

ターミナルを開いて、先ほど作成したプロジェクトのルートディレクトリに移動。ここに Podfile を作成する。Podfile はプロジェクトで使うライブラリを記述するファイルで、Ruby の Bundler でいうところの Gemfile みたいなもの。

platform :ios

workspace '(アプリ名).xcworkspace'
xcodeproj '(アプリ名).xcodeproj'

pod 'OKMock'

試しに、テストで使うモックライブラリを書いてみた。ちなみに Podfile の書式は Ruby の言語内 DSL になっている。

あとは Podfile が置かれているディレクトリで

pod install

を実行すると、Pods ディレクトリが作成され、その中にライブラリがインストールされた。あと、Podfile と同じディレクトリに xcworkspace ファイルも作成されていた。

ライブラリが使えるか確認

Xcode で xcworkspace ファイルを開くと、HelloPods と Pods の2つのプロジェクトが表示される。

ワークスペースを開くと、HelloPods は Pods プロジェクトを参照するようになっていて、Podfile に記述したライブラリがすぐ使える状態だった。ヘッダファイル名の補完でちゃんと OCMock が挙ってくる。

CocoaPods 無しにはもう戻れない

ライブラリを追加するときは、Podfile に追記して pod install を実行するだけ。手軽すぎて、CocoaPods の無い開発にはもう戻れない。だって、GitHub からソースコード落としてきて使う場合、プロジェクトの設定とかが面倒。超面倒。TapkuLibrary とか TapkuLibrary とか。