Carthage(カーセッジ)を使うとビルド時間が短縮
Carthage(カーセッジ)はSwift用のライブラリ管理ツールです。
Carthageは非常にシンプルです。CocoaPodsに比べての優位点は「コンパイル時間が短く」なります。
それはCarthageはライブラリをインストールすると、そのライブラリを事前にビルドして、フレームワークを作成してくれるため、CocoaPodsに比べコンパイル時間を短くすることができるのです。
Homebrewインストール
既にインストールしている方は本作業不要です。
私も使っていなかったのでインストールされているの?という状況だったので以下の通り確認しました。
$ brew -v Homebrew 1.3.4 Homebrew/homebrew-core (git revision 875ec; last commit 2017-09-26)
インストールされていなければ
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
一応、最新版に更新
$ brew update
おっと、
・・・ Permission denied @ rb_file_s_symlink - (../../../Homebrew/completions/zsh/_brew, /usr/local/share/zsh/site-functions/_brew)
というエラーで怒られてしまいました。
このような場合は、
$ sudo chown -R $USER /usr/local
で/usr/local配下のオーナー権限を自分に付与します。-Rは配下のディレクトリも再帰的に権限付与するオプションです。
Carthageインストール
brewを使ってcarthageをインストールします。
$ brew install carthage ==> Downloading https://homebrew.bintray.com/bottles/carthage-0.27.0.sierra.bott ######################################################################## 100.0% ==> Pouring carthage-0.27.0.sierra.bottle.tar.gz ==> Caveats Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> Summary 🍺 /usr/local/Cellar/carthage/0.27.0: 69 files, 26.6MB
インストールできました。
外部ライブラリの導入
Swiftプログラムを作っていてインストールするベスト10には入っている
Alamofire
SwiftyJSON
のライブラリを導入してみたいと思います。
まずはライブラリをインストールしたいプロジェクトディレクトリへ移動します。
$ cd /Users/xxx/Documents/application/dummy/test000
touchコマンドなどを使ってフィアルを作成
$ touch Cartfile
Cartfileを以下のように編集します。
$ vim Cartfile
中身を以下のように書き換えます(最初は何もありません)
github "Alamofire/Alamofire" github "SwiftyJSON/SwiftyJSON"
外部ライブラリをビルド
$ carthage update --platform iOS *** Cloning SwiftyJSON *** Cloning Alamofire *** Checking out SwiftyJSON at "4.0.0" *** Checking out Alamofire at "4.6.0" *** xcodebuild output can be found in /var/folders/7n/d0mqckr94rb5s1lxbdm_h2700000gn/T/carthage-xcodebuild.7VicAW.log *** Building scheme "Alamofire iOS" in Alamofire.xcworkspace *** Building scheme "SwiftyJSON iOS" in SwiftyJSON.xcworkspace
iOSのみをビルドします。少々時間がかかります。
インストールできました。
XCodeにてフレームワーク導入
プロジェクトファイルのGeneralタブから
「Linked Frameworks and Library」にある「+」を押します。
Frameworksを選択する画面で「Add Other…」を押します。
先ほど外部ライブラリをビルドしたディレクトリでCarthage/Build/iOSへと移動してライブラリ名.frameworkを選びます。複数選ぶときにはcommandボタンを押しながら選択すると複数選べます。
ライブラリが追加できたら、Build Phasesタブに移動して「+」ボタンから「New Run Script Phase」を選びます。
「Run Script」が現れます。
Shellの下に
/usr/local/bin/carthage copy-frameworks
を入力します。
「input Files」にて「+」ボタンを押し、以下のようにframwwork情報を記述します。
$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework $(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework
swiftファイルにて外部ライブラリをインポート
ViewController.swift
などで、
import UIKit import SwiftyJSON import Alamofire
のようにライブラリをインポートして利用します。