2015-03-24 17 views
12

Sto creando un framework Swift che dipende da diversi altri framework di terze parti. Entrambi questi altri framework supportano Carthage e Cocoapods.Combina Cocoapods e Carthage

C'è un modo per rendere possibile l'installazione del mio framework utilizzando sia Carhage che Cocoapods? O semplicemente non è realizzabile e dovrei sceglierne uno?

risposta

13

È possibile rendere la struttura disponibile con CocoaPods e Carthage. Questo è il percorso che consiglierei per consentire agli utenti di utilizzare qualsiasi soluzione preferiscano. Si noti inoltre che l'impostazione di un framework per lavorare con Carthage rende anche molto più semplice per gli utenti che desiderano utilizzare la libreria senza una di queste soluzioni.

Ad un livello elevato, per CocoaPods ti consigliamo di creare un podspec che elenchi le tue dipendenze lì. In questo modo, CocoaPods gestirà il download e la configurazione, oltre a risolverli contro altre dipendenze degli utenti. Vedi di più here.

Per Carthage dovrai configurare il tuo progetto con obiettivi quadro per le piattaforme che supporti e aggiungere le tue dipendenze nel tuo Cartfile. Maggiori informazioni su questo here

+0

Grazie per la risposta. Allora devo fare qualcosa di sbagliato con il mio file Cocoapods. Ho elencato le mie dipendenze usando, per esempio, 's.dependency 'BrightFutures', '~> 1.0''. Quando si esegue 'pod spec lint' fallisce con:' Impossibile soddisfare i seguenti requisiti: - BrightFutures (~> 1.0) richiesto da Spine (0.1) '. – Rengers

+0

Mi sembra che questo sia dovuto al fatto che BrightFutures non ha una versione corrispondente. Potrebbe essere necessario impostare esplicitamente la versione per le versioni beta attualmente rilasciate. (visto [qui] (https://github.com/CocoaPods/Specs/tree/master/Specs/BrightFutures)) –

+0

Grazie! Pensavo di averlo già provato, ma apparentemente non l'avevo :). – Rengers

5

Combinare entrambi in realtà non è difficile. Con il mio framework ho iniziato con il modello CocoaPods contenente le directory Example e Pod. Nel progetto di esempio ho creato un nuovo target Cocoa Touch Framework, verificato che questa destinazione sia condivisa (in Prodotto - Schemi - Schemi gestiti) e trascinato il contenuto della mia directory Pod/Classes nel progetto (con Copy items if needed non selezionato e aggiunto Target Membership solo a questo framework appena creato) .

Questo dovrebbe essere sufficiente, Carthage dovrebbe trovare questo schema condiviso e usarlo. Tieni a mente che devi commettere modifiche e creare un nuovo tag git prima di utilizzare il framework di Carthage.