Carthage は、Cocoa アプリケーションにフレームワークを追加する最もシンプルな方法であることを目的としています。
Carthage は依存関係を構築してバイナリ フレームワークを提供しますが、プロジェクトの構造とセットアップは完全に制御したままになります。 Carthage は、プロジェクト ファイルやビルド設定を自動的に変更しません。
- Quick Start
- Carthage のインストール
- アプリケーションにフレームワークを追加する
- はじめに
- Building platform->
- フレームワークの構築。独立した XCFrameworks
- Migrating a project from framework bundles to XCFrameworks
- Building platform-specific framework bundles
- If you’re building for macOS
- If you’re building for iOS.XCFrameworks
- If you’re built for the platform-specific framework bundles
- プラットフォーム固有のフレームワーク バンドルを構築します。 tvOS, または watchOS
- すべてのプラットフォーム
- (オプション)古い依存関係について警告するビルドフェーズの追加
- Swift バイナリ フレームワークのダウンロードの互換性
- Carthage を使用するプロジェクトの実行
- ユニット テストまたはフレームワークにフレームワークを追加する
- フレームワークのアップグレード
- Experimental Resolver
- Nested 依存関係
- 依存関係にサブモジュールを使用する
- 依存関係の自動再構築
- ビルドのキャッシュ
- Bash/Zsh/Fish の補完
- はじめに
- サポートすること Carthage for your framework
- Share your Xcode schemes
- Resolve build failures
- Tag stable releases
- Archive prebuilt frameworks into one zip file
- Use travis->Travis->Share frameworks
- Use travis->Share frameworks
Resolve build fails
- Use travis->Travis->Share frameworks
- Tag stable release
- アプリの起動時間を短縮するために静的フレームワークをビルドする
- 互換性を宣言する
- DWARFs シンボル問題
- Quick Start
- Carthage
- Adding frameworks to an application
- Getting started
- Building platform-independent XCFrameworks (Xcode 12 and above)
- フレームワークバンドルから XCFrameworks へのプロジェクトの移行
- If you’re building for macOS
- iOS、tvOS、または watchOS 用に構築する場合
- (オプション) 古い依存関係について警告するビルド フェーズの追加
- Swift バイナリ フレームワーク ダウンロード互換
- Running a project that uses Carthage
- ユニット テストまたはフレームワークにフレームワークを追加する
- Upgrading frameworks
- Experimental Resolver
- Nested dependencies
- 依存関係にサブモジュールを使用する
- 依存関係を自動的に再構築する
- Caching builds
- Bash/Zsh/Fish 補完
- Supporting Carthage for your framework
- Xcode スキームの共有
- ビルドの失敗を解決する
- Archive prebuilt frameworks into one zip file
- タグ付けされたビルド済みフレームワークをアップロードするために travis-ci を使用する
- アプリの起動時間を高速化する静的フレームワークの構築
- Carthage 0.29.0 以下
- Declare your compatibility
- 既知の問題
- DWARFs symbol problem
- CarthageKit
- Carthage と CocoaPods の違い
- License
Quick Start
-
Get Carthage by running
brew install carthage
or choose another installation method -
Create a Cartfile in same directory where your
.xcodeproj
or.xcworkspace
is -
List an desired dependencies in the Cartfile, 例えば
github "Alamofire/Alamofire" ~> 4.7.2
-
Run
carthage update --use-xcframeworks
-
A
Cartfile.resolved
ファイルとCarthage
ディレクトリが.xcodeproj
または.xcworkspace
がある同じディレクトリに現れます -
Carthage/Build
から構築した.xcframework
バンドルをアプリケーション Xcode プロジェクトの “Frameworks and Libraries” のセクションにドラッグしてください。 -
Carthage をアプリケーションに使用する場合、「& Sign を埋め込む」を選択し、そうでなければ「埋め込まない」。
詳細については、アプリケーションへのフレームワークの追加
Carthage
Carthage をインストールするには複数の選択肢があります:
-
Installer.B: インストーラー。 最新リリースの
Carthage.pkg
ファイルをダウンロードして実行し、画面上の指示に従います。 CLI で pkg をインストールする場合、最初にsudo chown -R $(whoami) /usr/local
を実行する必要があるかもしれません。 -
Homebrew: Homebrew を使って、
brew update
とbrew install carthage
を実行するだけで、carthage
ツールをシステムにインストールすることができます。 (注意: 以前にバイナリ版の Carthage をインストールしていた場合は、/Library/Frameworks/CarthageKit.framework
を削除してください)。 -
MacPorts:
sudo port selfupdate
とsudo port install carthage
を実行するだけで、MacPorts を使用し、システムにcarthage
ツールをインストールすることができます。 (注意: 以前にバイナリ版の Carthage をインストールしていた場合は、/Library/Frameworks/CarthageKit.framework
を削除してください)。 -
From source: 最新の開発版 (非常に不安定または互換性がない可能性があります) を実行したい場合は、リポジトリの
master
ブランチをクローンし、make install
を実行するだけです。 Xcode 10.0 (Swift 4.2) が必要です。
Adding frameworks to an application
Carthage をインストールしたら、プロジェクトにフレームワークを追加し始めることができます。 Carthage は、iOS 8 以降 (または OS X の任意のバージョン) でしか利用できない動的フレームワークのみをサポートしていることに注意してください。
Getting started
Building platform-independent XCFrameworks (Xcode 12 and above)
- プロジェクトで使用するフレームワークをリストする Cartfile を作成します。 これは、Carthage/Checkouts フォルダーに依存関係をフェッチし、それぞれをビルドするか、または事前にコンパイルされた XCFramework をダウンロードします。
- アプリケーション ターゲットの General settings タブの Frameworks, Libraries, and Embedded Content セクションで、ディスク上の Carthage/Build フォルダーから使用したい各 XCFramework をドラッグ アンド ドロップします。
フレームワークバンドルから XCFrameworks へのプロジェクトの移行
バージョン 0.37.0 (2021 年 1 月) の XCFrameworks の使用を推奨し、Apple Silicon Mac で構築する場合は XCFrameworks を必須としています。
移行手順
- Delete your
Carthage/Build
folder to remove any existing framework bundles. - Build new XCFrameworks by running
carthage build --use-xcframeworks
.XCFrameworks from Discrete framework bundles to XCFrameworks requires a few changes to your project: Migration steps- Delete your
Carthage/Build
folder to remove any existing framework bundles. 506> - ターゲットの Frameworks, Libraries, and Embedded Content セクションおよび/またはその Link Binary with Libraries ビルド フェーズから Carthage フレームワークへの参照を削除します。
- アプリケーション ターゲットの場合: [全般設定] タブの [フレームワーク、ライブラリ、および埋め込みコンテンツ] セクションで、ディスク上の Carthage/Build フォルダから、使用する各 XCFramework をドラッグ アンド ドロップします。
- Framework ターゲットの場合: [Build Phases] タブの [Link Binary with Libraries] フェーズで、ディスク上の Carthage/Build フォルダから使用する各 XCFramework をドラッグ アンド ドロップしてください。 Xcode 12 以上でフレームワーク バンドルを構築する場合、マルチ アーキテクチャ プラットフォームはサポートされません。 XCFrameworks を使用してビルドすることをお勧めします。
If you’re building for macOS
macOS-specific instructions
- Cartfile を作成し、プロジェクトで使用したいフレームワークをリストアップします。 これは、依存関係を Carthage/Checkouts フォルダーにフェッチし、それぞれをビルドするか、またはコンパイル済みのフレームワークをダウンロードします。
- アプリケーション ターゲットの [General settings] タブの [Embedded Binaries] セクションで、ディスク上の Carthage/Build フォルダーから使用したいフレームワークをそれぞれドラッグアンドドロップします。
さらに、OS X でデバッグおよびクラッシュ レポートするために、デバッグ シンボルをコピーする必要があります。
- アプリケーション ターゲットのビルド フェーズ設定タブで、+ アイコンをクリックし、新規ファイル コピー フェーズを選択します。
- 宛先ドロップダウン メニューをクリックし、製品ディレクトリを選択します。
iOS、tvOS、または watchOS 用に構築する場合
Platform-specific instructions
-
プロジェクトで使用するフレームワークをリストした Cartfile を作成します。 これは、Carthage/Checkouts フォルダに依存関係をフェッチし、各々をビルドするか、またはプリコンパイルされたフレームワークをダウンロードします。 Xcode 11.0 以降では、[Frameworks, Libraries, and Embedded Content] セクションで、ディスク上の Carthage/Build フォルダから使用する各フレームワークをドラッグ アンド ドロップします。 その後、「埋め込み」セクションで、追加した各アイテムのプルダウンメニューから「埋め込まない」を選択します。 Xcode 10.x 以前の場合、[Linked Frameworks and Libraries] セクションで、ディスク上の Carthage/Build フォルダから使用したい各フレームワークをドラッグ アンド ドロップします。
-
アプリケーション ターゲットの Build Phases 設定タブで、+アイコンをクリックして [New Run Script Phase] を選択します。 シェルを指定したRun Scriptを作成します(例:
/bin/sh
)。シェルの下のスクリプト領域に以下の内容を追加します:/usr/local/bin/carthage copy-frameworks
-
input.xcfilelist
というファイルとoutput.xcfilelist
-
input.xcfilelist
に使用するフレームワークへのパスを追加してください。 例:$(SRCROOT)/Carthage/Build/iOS/Result.framework$(SRCROOT)/Carthage/Build/iOS/ReactiveSwift.framework$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework
-
コピーしたフレームワークへのパスを
output.xcfilelist
に追加します。 例:$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Result.framework$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactiveSwift.framework$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactiveCocoa.framework
入力ファイルと一緒に出力ファイルを指定すると、Xcode は入力ファイルが変更されたとき、または出力ファイルが見つからないときだけ、スクリプトを実行する必要があります。 これは、Carthage でフレームワークを再構築していない場合、ダーティ ビルドがより高速になることを意味します。
-
Carthage 実行スクリプト フェーズの “Input File Lists” セクションに
input.xcfilelist
を追加 -
Carthage 実行スクリプト フェーズの “Output File Lists” セクションに
output.xcfilelist
を追加
このスクリプトはユニバーサル バイナリが引き金になっている App Store 投稿バグに対処するとともに、アーカイブ時に必要なビットコード関連ファイルと dSYM が確実にコピーされるようにします。
ビルドされた製品ディレクトリにコピーされたデバッグ情報により、ブレークポイントで停止するたびに、Xcode はスタック トレースをシンボル化することができるようになります。 これは、デバッガーでサード パーティのコードをステップスルーすることも可能になります。
アプリケーションを App Store または TestFlight に提出するためにアーカイブする場合、Xcode はこれらのファイルもアプリケーションの
.xcarchive
バンドルの dSYMs サブディレクトリにコピーします。 その中で最も重要なのは Cartfile.resolved ファイルで、各フレームワークに対して実際にビルドされたバージョンをリストアップしています。 プロジェクトを使用する他の誰もが、同じフレームワーク バージョンを構築するためにそのファイルが必要になるからです。(オプション) 古い依存関係について警告するビルド フェーズの追加
依存関係のいずれかが古くなったときに自動的に警告する Run Script フェーズを追加することができます。 シェルを指定する Run Script を作成し (例:
/bin/sh
)、シェルの下のスクリプト領域に次の内容を追加します:
/usr/local/bin/carthage outdated --xcode-warnings 2>/dev/null
Swift バイナリ フレームワーク ダウンロード互換
Carthage はダウンロードした Swift (と Objective-C/Swift 混合フレームワーク ) がローカルで使用中の Swift と同じバージョンで構築されているかを確認するため、確認を実行します。 バージョンの不一致がある場合、Carthage はソースからフレームワークを構築するよう進めます。 フレームワークをソースから構築できない場合、Carthage は失敗します。
Carthage はローカルの Swift バージョンを決定するために
xcrun swift --version
の出力を使用するので、使用する予定の Swift ツール チェーンで Carthage コマンドを実行することを確認します。 多くの使用例では、何も追加する必要はありません。 しかし、たとえば、Xcode 8.x を使用して Swift 2.3 プロジェクトを構築する場合、carthage bootstrap
にデフォルトのswift
を指定する 1 つのアプローチは、次のコマンドを使用することです:TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage bootstrap
Running a project that uses Carthage
上記の手順を終了して変更を反映したら、プロジェクトの他のユーザーはリポジトリを取得し
carthage bootstrap
を実行して、あなたが加えたフレームワークを開始するだけでよいです。ユニット テストまたはフレームワークにフレームワークを追加する
任意のターゲットの依存関係に対して Carthage を使用することは、アプリケーションに対して Carthage を使用することにかなり似ています。 主な違いは、フレームワークが実際に Xcode で設定されリンクされる方法にあります。
ユニット テスト ターゲットには [一般設定] タブの [Linked Frameworks and Libraries] セクションがないため、代わりに、構築済みのフレームワークをライブラリとのリンク構築フェーズにドラッグする必要があります。
[ビルド設定] タブのテスト ターゲットで、
@loader_path/Frameworks
がまだ存在しなければ [実行パス検索] に追加します。まれに、それぞれの依存関係をビルド製品にコピーしたい場合もあります (例: … 続きを読む たとえば、外部フレームワーク内に依存関係を埋め込むため、または依存関係がテスト バンドルに存在することを確認するため)。 これを行うには、Frameworks を宛先とする新しい Copy Files ビルド フェーズを作成し、そこにフレームワークの参照も追加します。 テスト バンドルはフレームワークを取り除く必要がなく、
copy-frameworks
の同時インスタンス実行 (並列ビルドをオン) はサポートされていないため、carthage copy-frameworks
コマンドは使用しないでください。Upgrading frameworks
カートファイルを変更したり、各フレームワークの最新版に更新したい場合 (指定した要件がある場合) 、単に
carthage update
コマンドをもう一度実行してください。carthage update Box
または
carthage update Box Result
Experimental Resolver
フレームワークをアップグレードするロジックは、速度とメモリ使用量を減らす目的で書き直されました。 現在はオプトイン機能となっています。 update コマンドに
--new-resolver
を渡すことで使用できます (例:carthage update --new-resolver Box
更新中にパフォーマンスの問題が発生した場合、新しいリゾルバを試してみてください
Nested dependencies
プロジェクトに追加するフレームワークに Cartfile で明示的にリストされた依存関係がある場合、Carthage が自動的にそれを取得します。 その後、Carthage/Build フォルダーからプロジェクトにそれらを自分でドラッグする必要があります。
プロジェクト内の組み込みフレームワークに他のフレームワークへの依存関係がある場合、それらをアプリケーション ターゲットにリンクする必要があります (アプリケーション ターゲットがそのフレームワークへの依存関係を持たず、それらを使用しない場合でも)。
依存関係にサブモジュールを使用する
デフォルトでは、Carthage は依存関係のソース ファイルをプロジェクト フォルダーに直接チェックアウトし、選択に応じてそれらをコミットまたは無視するように任せます。 依存関係を Git サブモジュールとして利用したい場合は、
carthage update
またはcarthage checkout
に--use-submodules
フラグを付けて実行します。この方法で実行すると、Carthage はリポジトリの
.gitmodules
および.git/config
ファイルに書き込み、依存関係のバージョンが変更されるとサブモジュールを自動的に更新します。依存関係を自動的に再構築する
開発中に依存関係に取り組み、親プロジェクトを構築するときにそれらを自動的に再構築したい場合、次のように Carthage を呼び出す Run Script 構築フェーズを追加できます:
/usr/local/bin/carthage build --platform "$PLATFORM_NAME" --project-directory "$SRCROOT"
プレーン チェックアウトは直接修正してはいけないため、これを行う前にサブモジュールを使用すべきことに留意してください。
Caching builds
デフォルトでは、Carthage は、以前と同じ解決済みのバージョンであるかどうかに関係なく、依存関係を再構築します。
--cache-builds
を渡すと、carthage は可能な限り依存関係の再構築を回避します。 Carthage がこのキャッシュを実行する方法の詳細については、バージョン ファイルに関する情報を参照してください。Note: 現時点で
--cache-builds
は--use-submodules
と互換性がありません。 両方を使用すると、サブモジュールの依存関係の作業コピーおよびコミットされた変更が正しく再構築されなくなります。 詳細は #1785 を参照してください。Bash/Zsh/Fish 補完
Bash/Zsh/Fish Completion のドキュメントにあるように、Carthage コマンドとオプションの自動補完が利用できます。
Supporting Carthage for your framework
Carthage では動的フレームワークのみが公式にサポートされています。 動的フレームワークは OS X のどのバージョンでも使用できますが、iOS 8 以降では使用できません。 さらに、バージョン 0.30.0 以降、Carthage は静的フレームワークをサポートします。
Carthage には集中パッケージ リストやプロジェクト指定形式がないため、ほとんどのフレームワークは自動的に構築されます。
Xcode スキームの共有
Carthage はあなたの
.xcodeproj
から共有した Xcode スキームのみを構築します。 意図したスキームがすべて正常にビルドされるかどうかは、carthage build --no-skip-current
を実行し、Carthage/Build フォルダーをチェックすることで確認できます。このコマンドを実行しても重要なスキームがビルドされない場合は、Xcode を開き、そのスキームを共有としてマークし、Carthage がそれを検出できるようにしてください。
ビルドの失敗を解決する
carthage build --no-skip-current
でビルドに失敗した場合、xcodebuild -scheme SCHEME -workspace WORKSPACE build
またはxcodebuild -scheme SCHEME -project PROJECT build
(実際の値) を実行して、そこで同じ失敗が発生するかどうかを確認します。複数のバージョンの Apple 開発者ツール (Xcode ベータ版など) をインストールしている場合、
xcode-select
を使用して Carthage が使用するバージョンを変更します。まだ Carthage でフレームワークを構築できない場合は、issue を開いてください。 たとえば、タグ
v1.2
では、セマンティック バージョンは 1.2.0.バージョン番号がないタグ、またはバージョン番号の後に何らかの文字があるタグ (例:,
Archive prebuilt frameworks into one zip file
Carthage は、プロジェクトのリポジトリ上の GitHub リリースに添付されているか、バイナリ プロジェクト定義ファイルを介して、ゼロから構築する代わりに、自動的にプレビルド フレームワークを使用することができます。
特定のタグにビルド済みフレームワークを提供するには、サポートされているすべてのプラットフォーム用のバイナリを 1 つのアーカイブに圧縮し、そのアーカイブをそのタグに対応する公開リリースに添付する必要があります。 添付ファイルは、バイナリを含むことを Carthage に示すために、その名前に
.framework
を含める必要があります(例:ReactiveCocoa.framework.zip
)。 アーカイブのディレクトリ構造は自由ですが、フレームワークは名前に基づいてCarthage/Build/<platform>
にコピーされるため、アーカイブ内に一度だけ表示されるべきです (例:ReactiveCocoa.framework
)。以下のように、carthage 自体でアーカイブ操作を行うこともできます。
タグ付けされたビルド済みフレームワークをアップロードするために travis-ci を使用する
タグ付けされたリリースをビルドしてアップロードするために travis-ci を使用することは可能です。
-
Travis CLI を
gem install travis
-
あなたのリポジトリ用に travis-ci を設定します (ステップ 1 と 2)
-
そのテンプレートに基づいてリポジトリのルートに
.travis.yml
ファイルを作成します。FRAMEWORK_NAME
を正しい値に設定します。PROJECT_PLACEHOLDER と SCHEME_PLACEHOLDER を入れ替えます。
プロジェクトの代わりにワークスペースを使用している場合は、xcode_project 行を削除して xcode_workspace 行をアンコメントします。
プロジェクトの形式は、このようになるはずです。 MyProject.xcodeproj
The workspace should be in the format: MyProject.xcodeproj
The workspace should be in the format: MyWorkspace.xcworkspace
xcode_sdk
の値を他の SDK に更新するのは自由ですが、iphoneos SDK でテストする場合は、コード署名 ID をアップロードする必要がありますFor more informations you can visit travis docs for objective-c projects
language: objective-cosx_image: xcode7.3xcode_project: <PROJECT_PLACEHOLDER># xcode_workspace: <WORKSPACE_PLACEHOLDER>xcode_scheme: <SCHEME_PLACEHOLDER>xcode_sdk: iphonesimulator9.3env: global: - FRAMEWORK_NAME=<THIS_IS_A_PLACEHOLDER_REPLACE_ME>before_install: - brew update - brew outdated carthage || brew upgrade carthagebefore_script: # bootstrap the dependencies for the project # you can remove if you don't have dependencies - carthage bootstrapbefore_deploy: - carthage build --no-skip-current - carthage archive $FRAMEWORK_NAME
-
Run
travis setup releases
.Project.xcodesproj.xcodesproj.xcodesProject
3276 follow documentation here
このコマンドは GitHub のクレデンシャルを
.travis.yml
ファイルにエンコードして、travis が GitHub にリリースをアップロードできるようにするものです。comアップロードするファイルの入力を求められたら、$FRAMEWORK_NAME.framework.zip
-
タグで実行するためにデプロイセクションを更新します:
.travis.yml
で、on: repo: repo/repo
そして
tags: true
とskip_cleanup: true
を追加します。skip_cleanup: trueon: repo: repo/repo tags: true
これにより、新しいタグがプッシュされたときに配置を作成するように travis に通知し、travis が生成された zip ファイルをクリーンアップするのを防ぎます
でインストールし、
アプリの起動時間を高速化する静的フレームワークの構築
アプリに多くの動的フレームワークを埋め込んだ場合、プリメイン起動時間がかなり遅くなることがあります。 Carthage では、動的フレームワークを静的フレームワークとして構築することにより、これを緩和することができます。 静的なフレームワークは、アプリケーションに直接リンクすることも、ワークフローに少し変更を加えるだけでより大きな動的フレームワークに統合することも可能で、プリメインの起動時間を大幅に短縮できます。 ただし、フレームワークと明記されているため、Darwin バンドルには .framework 拡張子が付き、静的にリンクされたオブジェクト アーカイブが含まれていることに注意してください。
ワークフローはほとんど変わりません。
- 動的バイナリと同様に、製品 > スキーム > スキームの管理…で共有されている Carthage 準拠プロジェクトのスキームをチェックする必要があります
- 動的バイナリと同じように、.framework ファイルに対してリンクする必要があります。動的バイナリ
ただし:
- Carthage 準拠プロジェクトの Cocoa Framework ターゲットの [構築設定] の [リンク] セクションで、Mach-O Type を Static Library
- 静的にリンクしたフレームワークは .NET で構築されるでしょう。/Carthage/Build/$(PLATFORM_NAME)/Static
- carthage copy-frameworks Build Phase
Carthage 0.29.0 以下
詳細は StaticFrameworks doc を参照してください。
このアプローチにはいくつかの注意点があることに注意してください:
- Swift static frameworks は Apple によって公式にサポートされていません
- これは Carthage に組み込まれていない高度なワークフローであり、YMMV
Declare your compatibility
Carthage とともに使用できることを宣伝したいとお考えでしょうか。 次の Markdown:
(https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
既知の問題
DWARFs symbol problem
Pre-built framework cannot be debugged using step execution on other machine that the framework was built on….を
README
に挿入するだけで互換バッジ:を追加することができます。 単純に
carthage bootstrap/build/update --no-use-binaries
で修正できますが、より自動化された回避策については、#924 を参照してください。 この問題の根本的な原因を Apple に修正してもらいたい場合は、rdar://23551273 を複製してください。CarthageKit
コマンドライン ツールの機能の大部分は、実際には CarthageKit というフレームワークにカプセル化されています。
Carthage を他のツールの一部として使用したい場合、あるいは Carthage の機能を拡張したい場合は、CarthageKit ソース コードを見て、API がニーズに合っているかどうかを確認してください。
Carthage と CocoaPods の違い
CocoaPods は Cocoa の長年にわたる依存性マネージャーです。 では、なぜ Carthage が作られたのでしょうか。
まず、CocoaPods は (デフォルトで) アプリケーションとすべての依存関係のために Xcode ワークスペースを自動的に作成し、更新します。 Carthage は
xcodebuild
を使用してフレームワーク バイナリを構築しますが、それらを統合する責任はユーザーに委ねられます。 CocoaPods のアプローチは使いやすく、Carthage のアプローチは柔軟で邪魔になりません。CocoaPods の目標は、その README に次のように記載されています:
… より集中したエコシステムを作成し、サード パーティのオープン ソース ライブラリの検出と関与を改善すること。 プロジェクトの中央リストがないため、メンテナンス作業が軽減され、中央障害点が回避されます。 しかし、プロジェクトの発見はより困難で、ユーザーは GitHub のトレンド ページまたは同様のものに頼らなければなりません。
CocoaPods プロジェクトには、プロジェクトに関するメタデータを含み、どのように構築されるべきかを指定する、いわゆる Podspec ファイルも必要です。 Carthage は、依存関係を単一のワークスペースに統合するのではなく、
xcodebuild
を使用して構築します。同様の仕様ファイルはありませんが、依存関係には、製品を構築する方法を説明する独自の Xcode プロジェクトを含める必要があります。 CocoaPods は、さらなる複雑さを犠牲にして、Carthage には決してない多くの素晴らしい機能を提供します。License
Carthage は MIT License の下でリリースされています。
ヘッダーバックグラウンドの写真は CC BY-NC-SA 2.0 license でリリースされました。 オリジナル写真: Richard Mortel.
.
- Delete your