2016-01-04 16 views
14

Attualmente sto esaminando una libreria che supporta solo Cartagine come gestore di pacchetti. Il progetto che sto cercando di integrarlo ha già alcune dipendenze da CocoaPods. Qualcuno ha provato ad usare entrambi questi manager allo stesso tempo?Utilizzo di Carthage e CocoaPods nello stesso progetto

Mi sembra una cattiva idea, ma mi piacerebbe sapere se questo è il caso nella pratica.

risposta

18

Il problema principale in cui vi imbatterete è che CocoaPods e Carthage non si conoscono l'un l'altro. Ciò significa che se una dipendenza gestita da CocoaPods e una dipendenza di Carthage condividono una dipendenza comune, i conflitti potrebbero sorgere.

Carthage richiede l'aggiunta manuale di framework a un progetto, il che significa che è probabile che si possa fare a meno di collegare alcuna dipendenza condivisa e fare affidamento sul framework aggiunto da CocoaPods, ma non si otterrà la risoluzione della versione di dipendenza tra le due dipendenze manager e non sarà chiaro come funziona tutto.

Detto questo, non ci sono motivi intrinseci per cui non è possibile utilizzare entrambi, e se la libreria che si desidera includere ha poche o nessuna dipendenza, è probabilmente ancora preferibile usare Carthage piuttosto che includere la libreria come un sottomodulo o addirittura copiare la fonte.

La mia raccomandazione, se possibile, è quella di includere le altre dipendenze tramite Cartagine o di creare un podspec per la libreria in modo da poter utilizzare esclusivamente Carthage o CocoaPods.

+0

Questo è praticamente quello che ho capito ... Ho provato a installare i deps da entrambi i gestori insieme, e non ho incontrato alcun problema. Ma ho creato un podspec per la libreria di Carthage, poiché preferirei che i miei deps fossero gestiti in un modo. –

+0

Inoltre: se hai un Podfile nel tuo repository e usi Travis-CI, Travis supporrà che tu voglia installare i pod anche se non lo dici esplicitamente di farlo nel tuo .travis.yml. Se si dispone di un solo .podspec, nessun problema con Travis presupponendo di averlo impostato per eseguire 'carthage update --platform ' –

Problemi correlati