2016-01-04 34 views
14

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

私は悪い考えとして私を襲ってきますが、これが実際のケースであるかどうか聞いてみたいと思います。

答えて

18

主な問題は、CocoaPodsとCarthageが互いに認識していないことです。これは、CocoaPodsによって管理される依存関係とCar​​thageによる依存関係が共通の依存関係を共有する場合、競合が発生する可能性があることを意味します。が発生します。

Carthageでは、プロジェクトに手動でフレームワークを追加する必要があります。つまり、共有依存関係をリンクしたり、CocoaPodによって追加されたフレームワークに頼ったりすることはできませんが、依存関係の解決には2つの依存関係それがどのように機能するかは明確ではありません。

これは、両方を使うことができないという固有の理由はなく、インクルードするライブラリに依存性がほとんどまたはまったくない場合は、ライブラリをインクルードするのではなく、サブモジュールまたはソースをコピーすることもできます。

可能であれば、カルタゴを介して他の依存関係を含めるか、ライブラリのポッドスペックを作成してCarthageまたはCocoaPodsを排他的に使用できるようにすることをお勧めします。

+0

それは私が想像していたものです...両方のマネージャのデープを一緒にインストールしようとしましたが、問題に遭遇しませんでした。しかし、私はカルテージ専用ライブラリのポッドスペックを作っていました。私のデープを一方的に扱いたいと思っていたからです。 –

+0

さらに、あなたのレポにPodfileがあり、Travis-CIを使用している場合、Travisは.travis.ymlで明示的に指示しなくても、ポッドをインストールしたいと考えます。しかし、 .podspecしか持っていない場合は、Travisで 'carthage update --platform​​' –

関連する問題