• twitter
  • facebook
  • B!
  • google plus

PRESSRELEASE & BLOGS

2015

12/04

Carthageクイックスタートガイド

Carthageとは?


こんにちはVASILYでiOSエンジニアをしているニコラスです。
今回はCarthageの紹介をしたいと思います。


CarthageはiOS / OS X開発のための分散型の (decentralized) パッケージマネージャーです。
既にプロジェクトでCocoaPodsを使っていても、同じプロジェクトでCarthageを使うことができます。
CarthageはCocoaPodsと違って中央レポジトリ型ではないので高速です。
また、100%Swiftで作られているため信頼性が高く、欧米のプログラマーコミュニティで特に盛んに利用されています。
Carthageの基本を学べば(たった5分で)すぐ使えるようになります。


Carthageを使うメリット



  • コミュニティの活発さ
    Carthageのコミュニティはとても活発で、バグがあればだいたい1日以内に修正のPRが送られています。

  • 環境依存性の低さ
    Carthageは100%Swiftでできているので、CocoaPodsと違って、環境ごとのRubyバージョンの違いによる問題に悩まされることがありません。
    Swiftでできているので、Rubyが書けなくてもiOS開発者がOSSに貢献することができます。 (私もPull Requestを送りました。)

  • シンプルさ
    Carthageはダウンロードしたらすぐに使うことができます。CocoaPodsの場合はRubyやRubyGemの依存関係により、CocoaPodsのコマンド実行に失敗することがあります。


インストール


Homebrewでインストールする方法


Carthageをインストールする一番簡単な方法は Homebrewです。



$ brew install carthage


直接ダウンロードする


Homebrewがなくても、GitHubから carthage.pkg をダウンロードすることができます。
Releases Page


ソースコードからインストール


最新の開発バージョンをインストールすることもできます。


$ git clone git@github.com:Carthage/Carthage.git
$ cd Carthage
$ make install


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


Cartfileを作成


Cartfileに含めたいライブラリを書いてください。
CartfileはCocoaPodsのPodfileやBundlerのGemfileと似たようなものです。


データフォーマット


CocoaPodsではインストールするライブラリのリストをPodfileというRubyのDSLで管理します。
Carthageでは、Cartfileというファイルに記述します。
これはOGDLというデータフォーマットで書かれていて、YAMLと似たようなフォーマットです。


Cartfileの文法



  • 一つ目のキーワードにgithubgitを指定します。
  • GitHubでホストされている場合はgithubを使い、それ以外でホストされている場合は、gitを使います。

  • githubキーワードでは、ブランチ名の指定やバージョンを制限することができます。



github "Username/RepositoryName" "BRANCH_NAME" OR == / >= / <= / ~> [VERSION_NUMBER]


実例


github "ReactiveCocoa/ReactiveCocoa" "master" #最新のmasterブランチをインストール
github "rs/SDWebImage" ~> 3.7 #v3.7.xx の最新版をインストール
github "realm/realm-cocoa" == 0.96.2  #v0.96.2をインストール


コマンドを実行してライブラリをインストール


プロジェクトのルートディレクトリで下記のコマンドを実行してください。



$ carthage bootstrap
#ios, mac, watchos, tvosなど、プラットフォームを指定することもできます。
$ carthage bootstrap --platform ios


正常に完了すると、

 Carthage/Build , Carthage/Checkouts 
という2つのフォルダが作成されます。


Carthage/Build



  • .framework, .framework.dySYM がここに生成されます。


Carthage/Checkouts



  • ライブラリのソースコードファイルがここにダウンロードされます。


Xcode設定


Run Script Phase を追加する


Add Build Phase



  1. プロジェクトファイルを開く

  2. TARGETS内のプロジェクト名を選択

  3. Build Phasesを選択

  4. 左上の「+」ボタンをクリックから"New Run Script Phase"を選択

  5. コマンド入力欄に /usr/local/bin/carthage copy-frameworks と入力

  6. Input Filesのところにインストールするフレームワークを追加します。



.frameworkをリンクする



  1. プロジェクトファイルを選択

  2. Generalを選択

  3. Linked Frameworks and LibrariesにCarthageフォルダからフレームワークを選択して追加します。

    Frameworks Image




これでライブラリのインストールが完了し、アプリをビルドすることができます。


Git管理 - Carthage運用のコツ



  • 基本的にgitにコミットするべきものはCartfileCartfile.resolvedCarthage フォルダです。

  • その理由として、いくつかのメリットがあります。

    • git cloneした時や、ブランチを切り替えるたびにcarthage updateをする必要がありません。

    • また、プロジェクトに新しいメンバーが入った時など、carthage updateするタイミングごとにCartfileのバージョンが違ってしまうといったことが避けられます。




まとめ


今回はCarthageの導入方法を紹介しました。


CocoaPodsは根強い人気がありますが、個人的にはiOS開発の本質とは関係ないところでいろいろ問題がありました。

(RubyGemsのバージョンごとのコンフリクトであったり、CocoaPods自身のアップデートでPodsのレポジトリが破損したりなど)


CarthageはSwiftで作られているため、Swiftのライブラリしか依存関係がありません。


CocoaPodsの運用で苦労している方は、ぜひCarthageを使ってみてください。

nic.

This article was posted
by nic .

新着記事を読む

DEVELOPERS BLOG

# DEVELOPERS BLOG

RECENT POSTS

POPULAR POSTS

CATEGORY

MONTHLY ARCHIVE