Carthageでライブラリをインストール手順について記載します。
今回は例として、ローカルDBライブラリ Realm
をインストールします。
※Realm
https://realm.io/docs/swift/latest/
環境
macOS 10.12.5 (Sierra)
Xcode v8.3.3
Homebrew 1.2.1
Carthage 0.20.1
事前説明
Carthageとは
Swift製のライブラリ管理ツール。
ライブラリを事前にビルドし、フレームワークを作成してくれるので、コンパイル時間を短くしてくれる。
※ CocoaPodsとの違い
CocoaPodsも同じくライブラリ管理ツール。都度ライブラリをビルド・更新するCocoaPodsに対し、Carthageは事前にビルドしてフレームワーク作成をするので、コンパイル時間が短くなる。個人的にはCarthageの方がおすすめ。
手順
- 準備:homebrewインストール
- 準備:carthageインストール
- cartfileを作成
- ライブラリインストール
- Xcodeの設定
1. 準備:homebrewインストール
homebrewとは、Mac OS X オペレーティング・システム上でソフトウェアの導入を単純化するパッケージ管理システム。要は、homebrewを使うと、様々な便利パッケージなどをインストールできる。
※補足:homebrewメリット
- 依存関係でインストールされるソフトが少ない。インストールしたいパッケージに不要なソフトがついでにインストールされてしまう、ということが少ない。
- 極力Macに入っているものを使ってくれる。パッケージ導入時のシステムへの負担や、インストールにかかる時間が比較的少なく済む。
- スーパーユーザでコマンドを実行する必要がない。
インストール方法
Homebrewの公式ページに書かれているコマンドを叩く。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
注意:fishshellなどを用いていて上記のコマンドが叩けない場合がある。その際は bash
と打って、bashに切り替える。
2. 準備:carthageインストール
インストール方法
homebrewインストール後、下記コマンドを叩く。
$ brew install carthage
3. cartfileを作成
carthageは、Cartfileに記載されたライブラリをインストールする仕様である。
まず、Cartfileを自分で作成する。例えば $ touch Cartfile
コマンドで。
次にCartfileを編集する。 vimを使うなら、 $ vi Cartfile
コマンド。
下記を記載しよう。
github "realm/realm-cocoa"
ここに書くものは、ライブラリのgithubトップページのReadmeに基本的に記載されているので、そちらを参照にする。
ここで、バージョンはコミット番号を指定したりできるが、今回は省略。
4. ライブラリインストール
Cartfileの作業が完了したら、carthageのupdateを実行する。
ライブラリのバイナリを生成するので、少々時間がかかる。
$ carthage update
$ carthage update --platform ios # os指定したい場合はコレ
これでライブラリのインストール自体は完了。次にXcodeの設定をする。
もしgitでソース管理している場合、バイナリをpushしてしまうとgitが壊れることがあるので要注意。 Carthage/
配下にあるファイルはgitignoreしておいた方がよい。
5. Xcodeの設定
2つ設定する必要がある。
- Linked Frameworks and Libraries にライブラリ追加
- Build Phasesに追加
Linked Frameworks and Libraries にライブラリ追加
起動したApplication
> TARGETS
> Generalタブ
> Linked Frameworks and Libraries
にライブラリのframeworkを追加する。
今回は、 Carthage/Build/iOS/
配下にある Realm.framework
と RealmSwift.framework
を追加しよう。drag-and-dropで追加できる。
これで、RealmDBを利用できるようになる。
Build Phasesに追加
アプリケーションを申請する際に、iTunesConnectの不具合を回避するために、この手順は必須。
起動したApplication
> TARGETS
> Build Phasesタブ
にある +
ボタンをクリック、 New Run Script Phase
をクリックしてRun Scriptを追加する。
黒背景部分に下記を記載する。どのライブラリでも共通。
/usr/local/bin/carthage copy-frameworks
Iput Filesに追加するライブラリ情報を下記のように記載する。
$(SRCROOT)/Carthage/Build/iOS/Realm.framework
$(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework
まとめ、補足
これでRealmライブラリの導入が完了です。コード上で import RealmSwift
ができるはずです。もしできなかったらXcodeを再起動しましょう。
ちなみに、git上にライブラリのバイナリをアップロードしないことがおすすめなので、複数人でgit利用している場合は各々で carthage update
しないといけなかったり。その場合、ライブラリのバージョンを揃えないといけなかったり。
その説明は、また別の機会に。