1. Synopsis

CocoaPods は、Objective-C プロジェクトの依存関係を管理するものです。CocoaPods は RubyGems や Bundler と似ており、Objective-C の依存関係を扱います。

CocoaPods では、依存関係は Pods で扱われます。利用可能な Pods のリストと、より多くの情報を http://cocoapods.org から入手できます。

CocoaPods はもともと Xcode プロジェクトの Objective-C と統合されるように設計されています。しかし、CocoaPods の作者と作業し、RubyMotion プロジェクトで利用できるようになりました。

2. Installation

はじめに、CocoaPods のインストールとセットアップが必要となります。CocoaPods のインストール方法について installation guide を参照してください。CocoaPods をインストール後に次のようにコマンドを実行してください。

$ pod setup

RubyMotion と CocoaPods の統合も gem を利用し、次のように gem をインストールします。

$ sudo gem install motion-cocoapods

3. Usage

プロジェクトの Rakefile で、さきほどの gem を require する必要があります。

require 'rubygems'
require 'motion-cocoapods'

gem を require すると、アプリケーションで必要な Pods を指定ために、pods という設定用のメソッドを使うことができます。通常の Podfile で記述するのと同じ表現を用います。

たとえば、AFNetworking Pod を利用したい場合には、以下のように記述します。

Motion::Project::App.setup do |app|
  # ...
  app.pods do
    pod 'AFNetworking'
  end
end

CocoaPods と統合するために以下のコマンドを実行します。ソースコードがダウンロードされ、次回のビルド時に AFNetworking が利用できるように設定されます。

$ rake pod:install

そしてみなさんがプロジェクトをビルドするときに、AFNetworking のソースがビルドされアプリケーションの実行ファイルにリンクされます。

$ rake
     Build ./build/iPhoneSimulator-7.1-Development
     Build ./vendor/Pods/Pods.xcodeproj [AFNetworking - Release]
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.m
   Compile ./vendor/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.m
   Compile ./vendor/Pods/AFNetworking/AFNetworking/AFURLSessionManager.m
      Link ./vendor/Pods/.build/libPods-AFNetworking.a
     Build ./vendor/Pods/Pods.xcodeproj [Pods - Release]
      Link ./vendor/Pods/.build/libPods.a