どうも、ヤスケです。
現在の現場で、iphoneアプリ開発をすることになりCarthageを使いました。
xcodeを久しぶりにバリバリつかっていきそうです😑
carthage の使い方
carthageとは
ライブラリの管理ツールです。コマンドラインからごにょごにょします。
同じようなツールでcocoa podsがあります。
phpでいうとcomposerみたいな感じですね。
読み方は、かーせっじかかるたご?ですかね?🤔
(かーとはげで覚えました(笑))
cartfile作成
プロジェクトフォルダ配下にcdで移動します。
Cartfileを作成して、必要なライブラリを書いていきます。
# cartfile
github "ReactiveX/RxSwift" ~> 4.0
github "realm/realm-cocoa" ~> 3.0
library取得・ビルド
下記のようにプラットフォームを指定して、ライブラリを取得・ビルドします。
プラットフォームを指定しない場合、watchOS用など全てのビルドされるみたいです。
carthage update --platform iOS
できたファイルが ./Carthage/Build/{platform}/ 配下に配置されます。
プロジェクトにライブラリを追加する
プロジェクト => General => Linked Frameworks and Library からライブラリを追加します。
+ボタンを押した後、Add Otherボタンからビルドされた.frameworkファイルをそれぞれ追加します。
RunScriptに記述を追加する
Build Phases => Run Script => Input Filesに.frameworkファイルまでのパスを追加します。
下記のように、ビルドしたライブラリで使いたいものを指定しておきます。
$(SRCROOT)/Carthage/Build/iOS/RxSwift.framework
$(SRCROOT)/Carthage/Build/iOS/Realm.framework
$(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework
上記まで終わったら、それぞれimportして使っていきます。
cocoa podsと違って、workspaceからプロジェクトを開かなくていいみたいですね😀
Cartfile.resolvedからビルドする
carthage update
するとCarthage.resolvedファイルができます。
ファイルを開くと、実際にチェックアウト・ビルドしたバージョンが指定されています。
一度updateでビルドした後は、carthage bootstrap
を使って、同じバージョンでライブラリを使っていくのがいいようです。(ライブラリの違いによるエラー等を避けるため)
Carthage.resolvedもgitにはあげておきましょう。
## dyld: Library not loaded: @rpath/… エラーになる
runscriptの設定に下記がなくてエラーになっていることがありました。
“`
/usr/local/bin/carthage copy-frameworks
“`
コメント