Hatena::ブログ(Diary)

Watsonのメモ RSSフィード

2011-12-04

CocoaPods ではじめる Objective-C ライブラリ管理 (1)

2011 年の Mac Dev JP advent calendar 4 日目の記事です。今日、明日の 2 回に分けて CocoaPods について説明します。

CocoaPods とは?

CocoaPods とは、Mac アプリや iOS アプリ開発者向けに作られたライブラリ管理ツールです。MacRuby コミッターでもある Eloy Durán さんによってプロジェクトが開始されました。

今までは作成するアプリに適合するライブラリを Google などで検索し、ダウンロードした後に手作業でプロジェクトへソースファイルを追加する必要がありました。CocoaPods を使うと、これらの作業がいくつかのコマンドで完了することができます。

1. MacRuby のインストール

CocoaPods は、あらかじめ MacRuby 0.10 以降がインストールされている必要があります。MacRuby 0.10 をダウンロードしてインストールしておきます。

最近の CocoaPods は OSX 標準の ruby でも動作するようになっていますので、MacRuby はインストールしなくても良いです。その場合、macgem のかわりに gem コマンドを利用して CocoaPods をインストールしてください。

2. CocoaPods のインストール

CocoaPods は RubyGems の一つとして提供され、macgem コマンドを使用して CocoaPods をインストールできます。macgem コマンドは MacRuby をインストールすると使えるようになります。

Terminal.app で以下のようにコマンドを実行しましょう。

$ sudo macgem install cocoapods
[!] If this is your first time install of CocoaPods, or if you are upgrading, first run: $ pod setup
Successfully installed xcodeproj-0.0.2
Successfully installed cocoapods-0.3.9
2 gems installed

CocoaPods で扱えるライブラリの情報をセットアップします。

$ pod setup
Updating spec repo `master'

上記のコマンドを実行すると、~/.cocoapods ディレクトリに CocoaPods/Specs のファイルがミラーリングされます。CocoaPods は ~/.cocoapods ディレクトリのファイルを利用してライブラリ管理を行います。

~/.cocoapods を更新する場合は、再度 pod setup コマンドを実行します。

pod --help と実行すると、pod コマンドのヘルプを参照できます。

$ pod --help
To see help for the available commands run:

  * $ pod setup --help
  * $ pod search --help
  * $ pod install --help
  * $ pod repo --help
  * $ pod spec --help

Options
-------

    --help      Show help information
    --silent    Print nothing
    --verbose   Print more information while working
    --version   Prints the version of CocoaPods

3. Xcode プロジェクトを用意

CocoaPods を利用する、Xcode プロジェクトを用意しておきます。ここでは、「CocoaPodsSample」という名前で、Mac アプリのプロジェクトを用意します。(CocoaPods は iOS アプリのプロジェクトでも利用できます)

4. Podfile を作成

AFNetworking というライブラリをインストールしてみます。さきほど作成した CocoaPodsSample プロジェクトの CocoaPodsSample.xcodeproj と同じディレクトリに「Podfile」というファイルを、以下の内容を記述し用意します。

platform :osx
dependency 'AFNetworking'

f:id:Watson:20111203000532p:image

CocoaPods/Specs に登録されているライブラリを CocoaPods で扱うことができます。


Podfile には以下のような内容を記述できます。

属性内容
platform プラットフォームを指定します。

  • :ios
    iOS アプリを作成する場合に指定します。
  • :osx
    Mac OS X アプリを作成する場合に指定します

dependency プロジェクトで使用するライブラリを指定します。ライブラリ名とバージョン番号を指定できます(バージョン番号はオプション)

例) dependency 'Objection', '0.9'

バージョンの指定方法

'0.1' バージョン 0.1 を使用
'> 0.1' 0.1 より上のバージョンを使用
'>= 0.1' 0.1 以上のバージョンを使用
'< 0.1' 0.1 未満のバージョンを使用
'<= 0.1' 0.1 以下のバージョンを使用
'~> 0.1.2' 0.1.2 以降の 0.1.x バージョンを使用

generate_bridge_support! MacRuby や Nu、JSCocoa 向けに BridgeSupport を作成する場合に指定します。

Podfile に記述できる内容の一部を上記表に記載しました。より詳細について知りたい方は rubydoc.info/gems/cocoapods/Pod/Podfile を参照してください。

5. ライブラリをインストール

最後にTerminal.app で Podfile を保存したディレクトリで以下のようにコマンドを実行します。

$ pod install CocoaPodsSample.xcodeproj 
Updating spec repo `master'
Installing AFNetworking (0.7.0)
Installing JSONKit (1.4)
Generating support files
[!] From now on use `CocoaPodsSample.xcworkspace' instead of `CocoaPodsSample.xcodeproj'.

コマンドを実行すると「Pods」というディレクトリと、「CocoaPodsSample.xcworkspace」というファイルが作成されます。

f:id:Watson:20111203000533p:image

Pods ディレクトリには AFNetworking ライブラリに関するファイルと、この AFNetworking が依存するライブラリがインストールされます。Xcode で CocoaPodsSample.xcworkspace を開くと、ライブラリがセットアップされた状態になっています。

f:id:Watson:20111203000534p:image

新規プロジェクトを作成するたびに、「4. Podfile を作成」と「5. ライブラリをインストール」を行うことで、いままでよりも簡単にライブラリを導入することができるかと思います。


4'. PodCreator で Podfile を作成

手作業で Podfile を作成していると、私はどうしても記述ミスをしてしまったりしてしまうので、「PodCreator」というアプリケーションを MacRuby で作成しました。このアプリケーションを使うと、簡単な操作で Podfile を作れます。CocoaPods を使用する際に MacRuby をインストールされているはずなので、すぐに動かすことができるかと思います。

アプリケーションを実行すると以下のような画面が表示されます。

f:id:Watson:20111203002703p:image

1. platform を選択します。

2. "+" をクリックします。

f:id:Watson:20111203002704p:image

3. ライブラリの一覧が表示されるので、使用するものをダブルクリックし追加します。

f:id:Watson:20111203002705p:image

4. [Create Podfile]をクリックすると保存先をきかれますので、Podfile を保存するディレクトリを指定してください。


明日は PodSpec ファイルを記述して、CocoaPods に登録されていない自作のライブラリなどを扱う方法について書きたいと思います。

CocoaPods ではじめる Objective-C ライブラリ管理 (2) へつづく。


Enjoy CococaPods! :)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証