homebrew
Swift
Realm
Carthage

Carthageでライブラリインストール

More than 1 year has passed since last update.

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の方がおすすめ。

手順

  1. 準備:homebrewインストール
  2. 準備:carthageインストール
  3. cartfileを作成
  4. ライブラリインストール
  5. 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.frameworkRealmSwift.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 しないといけなかったり。その場合、ライブラリのバージョンを揃えないといけなかったり。

その説明は、また別の機会に。