今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

Carthageの使用

背景#

以前は常にCocoaPodsを使用していましたが、今回はビルド時間の最適化のために、一部の Pod 依存ライブラリをCarthageに変更しました。ここでは、Carthageの使用方法について記録しておきます。

使用方法#

インストール#

brewを使用して簡単にインストールできます。

brew install carthage

使用方法#

プロジェクトのフォルダ、つまり.xcodeproj が存在するフォルダにCartfileを作成します。

touch Cartfile

次に、Cartfile を開きます。

open Cartfile -a Xcode

依存するサードパーティライブラリを追加します。バージョンの指定方法や範囲の指定方法に注意してください。以下のようになります。


github "krzyzanowskim/CryptoSwift" ~> 1.4.0
github "evgenyneu/keychain-swift" ~> 19.0
github "ibireme/YYKit"
github "ReactiveX/RxSwift" "6.5.0"
github "onevcat/Kingfisher" "version6-xcode13"
github "alibaba/HandyJSON" ~> 5.0.2
github "https://github.com/antitypical/Result.git"
github "pkluz/PKHUD" ~> 5.0
github "Moya/Moya" ~> 15.0

注意点として、Carthageでは、一部の SDK はすべてのプラットフォームをビルドするため、必要なものだけプロジェクトにインポートする必要があります。例えば、RxSwiftMoyaなどです。

最後のステップとして、インストールします。以下の異なるいくつかの方法に注意してください。


# すべてのプラットフォームをビルドします(tvOS、iOS、macOSなど)
carthage update --use-xcframeworks

# iOSのライブラリのみをビルドします
Carthage update --platform ios --use-xcframeworks

# iOSのライブラリのみをビルドし、ビルドキャッシュが存在する場合は再ビルドしません
Carthage update --platform ios --use-xcframeworks --cache-builds

# 参考:https://stackoverflow.com/questions/41442601/whats-the-purpose-of-no-use-binaries-in-carthage
carthage build --platform ios --use-xcframeworks --no-use-binaries

ビルド後に生成されたxcframeworkをプロジェクトにインポートし、プロジェクトの General タブのFrameworks, Libraries, and Embeded ContentEmbed & Signを選択する必要があります。以下のようになります。

示意図

もしSwiftLintを使用している場合、ビルド後にエラーが発生する可能性があります。.swiftlint.ymlCarthageを除外するように追加してください。以下のようになります。


excluded:
  - Pods
  - Carthage

最後に、Carthage プロジェクトをコミットした後、他の人がこのプロジェクトを取得する場合は、次のコマンドを実行して Carthage フレームワークを同期する必要があります。

carthage bootstrap

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。