iOSのライブラリ管理(Carthage)

  • 23
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

iOSのライブラリ管理

検証環境

  • Mac OS X El Capitan 10.11
  • XCode 7.0.1
  • Carthage 0.8.0

iOSのライブラリ管理で有名なものとして以下の2つのツールがあります。

  • CocoaPods
  • Carthage(カルタゴ/カッセージ)

Carthage

適用できる環境

  • iOS 8以降

carthageはdynamic frameworkのみをサポートしているため、iOS8以上が条件になっています。

インストール方法

brewコマンドでインストール可能です。

brew update
brew install carthage

ライブラリの追加方法

今回はSwiftの通信ライブラリであるAlamofireを追加してみることにします。

1.Cartfileの作成

プロジェクトディレクトリにCartfileを作成し、インストールするライブラリのリポジトリを指定します

github "Alamofire/Alamofire"

以下のようにライブラリのバージョン指定も可能です。

github "Alamofire/Alamofire" == 3.0.0
記号 説明
== 0.1 バージョン0.1のみ
>= 0.1 バージョン0.1以降の最新バージョン
~> 0.1.2 0.1.xの最新バージョン

2.インストールの実行

以下のコマンドを入力すると、Cartfileの内容に基づいてソースコードの取得、ビルドが実行されます。

carthage update

updateコマンドの実行が完了すると、以下のファイルが生成されます。

Carthageは上記のビルドファイル以外にもいくつかのファイルを生成します。
Carthageが生成するファイルは以下のとおりです。

  • Cartfile.resolved
    • 依存関係を含めたバージョンを管理するファイルです。マニュアルで変更してはいけません。
  • Carthage/Build
    • ビルドされたファイルが格納されます。
  • Carthage/Checkouts
    • チェックアウトされたソースコードが格納されます。

ビルドディレクトリには、iOSOSXWatchOSの各プラットフォーム用のビルドファイルが生成されます。
もし特定のプラットフォームのファイルのみ生成したい場合は、以下のように--platformオプションをつけてupdateコマンドを実行します。

carthage update --platform iOS

3.生成されたフレームワークの追加

プロジェクトのGeneralタブのEmbedded Binariesに、AlamofireをDrag & Dropします。

対象ファイル

Carthage/Build/iOS/Alamofire.framework

4.importする

あとは下記のようにImportして使えるようになります。

import Alamofire

5.Build Phasesへのスクリプト追加

プロジェクト設定のBuild PhasesのタブでをクリックしてNew Run Script Phaseを選択し、Shellのところに以下の内容を設定します。

/usr/local/bin/carthage copy-frameworks

この設定をしないとStore申請で問題がでるようです。