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