[swift]Carthageを使いました🤨

swift

どうも、ヤスケです。
現在の現場で、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
“`

参考:Carthageを使ってビルド時間を短縮しよう

コメント

タイトルとURLをコピーしました