環境
めも
Carthage関連の記事はSwiftと結びついていることが多いですが、Objective-Cでも使えます。
(Carthageに対応しているライブラリはSwiftのものが多いのかなと)
CocoaPodsも併用していますが、どちらも問題なく使えます。
(※ただ、ストアに申請したことがないので、併用が本当に問題ないかどうかは現時点では不明です)
読みは・・「カルタゴ」が正解?
(カーセージと読んでしまう><)
Carthageインストール
Homebrew環境です。
$ brew install carthage
もしPermission Deniedが出たら
私の環境ではパーミッションのエラーが出てしまったのでメモです。
Error: Permission denied - /Library/Caches/Homebrew/Formula/carthage.brewing
こちらを参考にしました。
Permission denied - /Library/Caches/Homebrew/Formula/nmap.brewing
$ sudo chown -R $USER /Library/Caches/Homebrew/
ディレクトリの権限を変更しておきます。
Cartfile
Cartfile
というファイルを用意します。
CocoaPodsでいうところのPodfile
ですね。
「Cartfile」という名称のファイルを自分で作って、プロジェクトのディレクトリに置きます。
(pod init
的なものはないようです)
Cartfileの例
例えば、
https://github.com/LeoNatan/LNPopupController.git
こちらのライブラリをCarthageで管理したいとして、Cartfile
には
github "LeoNatan/LNPopupController"
このように書きます。
☆ 参考: Example Cartfile
☆ LNPopupController (標準のミュージックアプリのミニプレーヤーに似たステキなControllerです)
carthage update
Cartfile
の準備ができたら、
$ carthage update
を実行します。
正常に完了すれば、
Carthage
フォルダ
Cartfile.resolved
ファイル
が追加されます。
プロジェクトの設定
Carthage/Build/iOS
の中に、xxx.framework
があります。
(その他にdSYMファイルなどがあることもあります)
Carthageで管理しているFrameworkを、プロジェクトに追加しましょう。
Linked Frameworks and Libraries
- 「General」タブを開く。
- 「Linked Frameworks and Libraries」の「+」から、
Carthage/Build/iOS
にあるxxx.framework
ファイルを選択する。
Run Script
- 「Build Phases」タブを開く。
- 「+」から「New Run Script Phase」を追加する。
- 「Shell」の欄に
/usr/local/bin/carthage copy-frameworks
を追加する。
- 「Input Files」の「+」から、
$(SRCROOT)/Carthage/Build/iOS/xxx.framework
を追加する。
☆参考: If you're building for iOS
.gitignore
☆参考: github/gitignore/Objective-C.gitignore
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
上の.gitignore
では、CathageのBuildフォルダだけ除外という感じですが、
Carthageフォルダごと除外でよいかと思います。
# Carthage
Carthage/
私はフォルダごと除外しています。
Cartfile.resolved
☆ Cartfile.resolvedについては、
strongly recommended to commit this file to your repository.
と念押しされています。
Cartfile
とCartfile.resolve
は、もれなくGit管理してあげましょう。
以上です!
これで、Carthageのインストール 〜 ライブラリを利用する準備が整いました。
想像よりも気楽に準備が整えられたので良かったです。
それと、Run Scriptを追加する若干の手間はあるとしても、CocoaPodsよりもプロジェクトとの結合が疎な感じが、個人的には気に入りました☆
参考
[Swift] CocoaPodsとCarthageの違い / ライブラリ管理 - Qiita
Swiftで使えるライブラリ管理ツールCarthageの使い方