しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

CarthageというiPhoneのライブラリ管理システムを試してみる (CocoaPodsみたいなシステム)

Carthageとは

Carthageの読み方

カルダゴと読むようです。
なんでもローマに滅ぼされた古代都市だとか。

Carthageの特徴

Githubは下のURLになります。
Differences between Carthage and CocoaPodsを読んだ所CocoaPodsよりもシンプルな所が特徴なようです。
0.1が出たのが2014年の11月、現在は0.7.5まで出ています。

GitHub - Carthage/Carthage: A simple, decentralized dependency manager for Cocoa

利用可能OS

dynamic frameworksという機能を使っているため、iOS8以上でしか使えないようです。

Carthageのインストー

Macの場合はHomebrewでインストールできます。

brew install carthage

No available formula for carthageというエラーが出る場合は下コマンドでHomebrewの更新をします。

brew update

Carthageの使い方

Cartfileの作成

まずはプロジェクト直下にCartfileというファイルを作ります。
CocoaPodのPodfileのようなものです。 書き方は下の通りです。
githubやgitで指定します。

github "ReactiveCocoa/ReactiveCocoa"
git "https://enterprise.local/desktop/git-error-translations.git"
github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1 # バージョン指定

詳しくは以下ドキュメントに記載されています。 Carthage/Artifacts.md at 0.7.5 · Carthage/Carthage · GitHub

carthageコマンド

プロジェクトのルートでcarthage updateというコマンドを打ちます。
そうするとCarthage/Build/iOS/以下に.frameworkが生成されるので、それをプロジェクトファイルのLinked Frameworks and Librariesにドラッグします。

f:id:llcc:20150627004235p:plain

以上でReactiveCocoaを動かす事ができました。

GithubではRun Script/usr/local/bin/carthage copy-frameworksというコマンドを追加するように書いてありましたが、こちらは書かずに動かす事ができました。

CocoaPodsを置き換えれるのか

こちらはライブラリ製作者側の対応も必要な為、全て置き換えるのは難しそうです。
Githubのいくつかのライブラリを試した所、対応していないライブラリは多々ありました。