web-dev-qa-db-ja.com

同じプロジェクトでCarthageとCocoaPodsを使用する

私は現在、Carthageをパッケージマネージャーとしてのみサポートするライブラリを探しています。統合しようとしているプロジェクトには、すでにいくつかのCocoaPods依存関係があります。これらのマネージャーの両方を同時に使用しようとした人はいますか?

それは悪い考えだと思いますが、これが実際に当てはまるかどうか知りたいです。

27
Darren Black

遭遇する主な問題は、CocoaPodsとCarthageがお互いを認識していないことです。つまり、CocoaPodsで管理されている依存関係とCar​​thageで依存関係が共通の依存関係を共有している場合、競合mayが発生します。

Carthageでは、プロジェクトにフレームワークを手動で追加する必要があります。つまり、共有依存関係をリンクせず、CocoaPodsによって追加されたフレームワークに依存することなく、おそらく回避できますが、2つの依存関係マネージャー間での依存関係バージョンの解決は得られず、成功します。すべてがどのように機能するかは明確ではありません。

そうは言っても、両方を使用できない固有の理由はありません。含めるライブラリに依存関係がほとんどないかまったくない場合でも、ライブラリをサブモジュールとして含めるよりも、Carthageを使用することをお勧めします。ソースをコピーします。

可能であれば、Carthageを介して他の依存関係を含めるか、CarthageまたはCocoaPodsのみを使用できるようにライブラリーのpodspecを作成することをお勧めします。

30