Carthage
Carthageを試す
Carthageの準備
Carthageをインストール
Homebrewでインストールする
$ brew update
$ brew install carthage
($ brew upgrade carthage)
Carthageでライブラリを利用する
Cartfileの準備
$ touch Cartfile
$ edit Cartfile
github "ReactiveCocoa/ReactiveCocoa"
// または
git "git@github.com:Carthage/Carthage.git"
ライブラリのビルド&インストール
$ carthage update
Carthage/Checkouts直下にライブラリがチェックアウト(clone)される
Carthage/Buildにライブラリがdynamic frameworkとしてビルドされる
Xcodeプロジェクトに組み込む
-
TARGETS > General > Linked Frameworks and Librariesから
Carthage/Buildにビルドされたframeworkを追加 -
TARGETS > Build Phasesに”Run Script Phase”を追加
-
コマンド入力欄に以下を設定
/usr/local/bin/carthage copy-frameworks -
“Input Files”に以下を設定
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework
-
エラー対応
エラーが発生したらXcodeのbetaを利用するように変更することで解消する場合がある。
$ sudo xcode-select --switch /Applications/Xcode-beta.app
$ xcode-select --print-path
/Applications/Xcode-beta.app/Contents/Developer
その他
-
ビルド時に生成される
Cartfile.resolvedをバージョン管理ツールで管理する
ex.)git commit Cartfile.resolved -
ライブラリを組み込む人以外は以下のコマンドを実行してビルド&インストールする
ライブラリの依存関係を再チェックしない(その時最新のものを勝手にインストールしないようにするため)?$ carthage bootstrap -
ビルド時にリリースビルドとデバッグビルドを切り替える
デフォルトはリリースビルドかな?$ carthage update --configuration Debug
ライブラリをCarthageに対応する
プロジェクトの作成
dynamic frameworkのためのTARGETを追加

schemeをsharedに設定

Product NameをTARGET_NAMEからPROJECT_NAMEに変更
TARGETをHoge-iOSなどで作成したものの、ライブラリをプロジェクト名でビルドしたい場合がある

コンパイルソースファイルや公開するヘッダーファイルを設定

ビルドできるか試す
$ carthage build --no-skip-current
*** xcodebuild output can be found in /var/folders/gh/k78xg2h16t1g9hf6j5b6x71h0000gn/T/carthage-xcodebuild.nXl0s5.log
*** Building scheme "SampleLibrary" in SampleLibrary.xcodeproj
Carthage/Build配下に*.frameworkが作成される
TAGを切る
$ git tag 1.0.0