In primo luogo, alcune definizioni generali (specifiche per iOS):
libreria statica - un'unità di codice legato al momento della compilazione, che non cambia.
Tuttavia, le librerie statiche iOS sono non consentito contenere immagini/risorse (solo codice). Puoi ovviare a questa sfida utilizzando un pacchetto multimediale .
Una definizione migliore e più formale può essere trovata su Wikipedia here.
libreria dinamica - un'unità di codice e/o delle attività collegate in fase di esecuzione che può cambiamento.
Tuttavia, solo a Apple è consentito creare librerie dinamiche per iOS. Non ti è permesso crearli, in quanto ciò comporta il rifiuto della tua app. (Vedere this altro post SO per conferma e ragionamento su tale).
Software Framework - un gruppo compilato di codice che esegue un compito ... da qui, si può effettivamente avere un quadro statico o un quadro dinamico , che sono in genere solo le versioni compilate di cui sopra.
Vedere il Wiki on Software Framework per ulteriori dettagli.
Quindi su iOS, l'unica opzione è fondamentalmente utilizzare una libreria statica o un framework statico (la differenza principale è che un framework statico viene distribuito come file compilato .a
, mentre una libreria statica può essere semplicemente inclusa come sottoprogetto: è possibile visualizzare tutto il codice, che viene prima compilato e il relativo file .a
utilizzato come dipendenza dal progetto).
Ora che siamo chiari (er) in questi termini, la creazione di una libreria statica e il supporto del pacchetto multimediale per iOS non è troppo difficile, e ci sono molti tutorial su come farlo.Personalmente consiglierei questo:
https://github.com/jverkoey/iOS-Framework
Questa è una guida abbastanza straight-forward e non ha lo svantaggio di trattare con "librerie statiche falsi" ... check it out per ulteriori informazioni ..
Una volta creata la libreria statica, è facile includerla come un modulo all'interno di Git per l'utilizzo in diversi progetti.
Buona fortuna.
EDIT
Per quanto riguarda un sottoprogetto all'interno di un progetto, per quanto ne so, per arrivare a questo lavoro/corretta compilazione, si deve essenzialmente a creare una catena di compilazione in cui il sottoprogetto viene compilato prima , che crea un file statico .a
che viene utilizzato come dipendenza dal progetto.
Ecco un altro tutorial utile che parla di questo:
http://www.cocoanetics.com/2011/12/sub-projects-in-xcode/
EDIT 2
Come di iOS 8, Apple ora permette agli sviluppatori di creare quadri dinamici! (Nota: la tua app deve avere un target minimo di iOS 8 per includere un framework dinamico ... back porting non consentito.)
Questo è stato aggiunto come un nuovo modello di progetto. In Xcode 6.1, questo può essere trovato all'indirizzo:
New Project -> iOS -> Framework & Library -> Cocoa Touch Framework
È possibile creare un framework ombrello che è qualcosa come "framework inside framework" http://stackoverflow.com/a/27638841/1582217 –
possibile duplicato di [Come creare un framework Umbrella in sdk iOS?] (Http://stackoverflow.com/questions/27484997/how-to-create-an-umbrella-framework-in-ios-sdk) –