2012-01-31 14 views
11

Sono stato fornito con un framework di un fornitore di terze parti per un accessorio hardware iPhone. Quindi ho una cartella come Device.framework. Dentro quella cartella c'è un file binario e un insieme di file .h. Ci sono istruzioni su come aggiungere questo ad un progetto iOS e utilizzare le classi contenute all'interno. Tuttavia, sto usando MonoTouch e voglio usare una libreria statica.Come creare una libreria statica da un framework esistente in iOS?

C'è un modo per creare una libreria statica che rende tutte le classi dal framework disponibili nella libreria statica? Quindi nel mio progetto MonoTouch collegherei la libreria statica e ho accesso a quel framework.

risposta

12

Un * .framework è semplicemente un pacchetto contenente: la libreria statica, le intestazioni, i metadati associati. Copia e incolla il file .framework ed estrai il file * .a statico e i relativi file di intestazione.

Quindi si tratta semplicemente di utilizzare lo strumento btouch di MonoTouch per collegare la libreria statica da utilizzare nel progetto MonoTouch. C'è un ottimo esempio di come associare una libreria nativa a MonoTouch su Github. Con la guida sul targeting simulatore + dispositivo e utilizzando l'attributo LinkWith per incorporare la libreria statica in un unico * .dll:

Inoltre, assicurati di controllare la documentazione di riferimento BTouch qui:

+0

Ho accettato questo uno come risposta semplicemente perché ha il link al BindingSample che è stato utile. Grazie a entrambi i ragazzi per aver trovato il tempo di rispondere a –

+0

@JWB con il tuo ultimo upvote (il mio ;-) ora hai abbastanza punti reputazione da svalutare entrambe le risposte :-) – poupou

7

Rinominare il file binario in Device.a. Puoi farlo perché il framework che hai menzionato non è fatto da Apple, quindi deve essere una libreria statica e non dinamica.

Assicurarsi che il progetto colleghi tale libreria (Device.a).

Includere le intestazioni nel progetto e fare riferimento, se necessario.

+3

ho rinominato il file come avete suggerito e fatto 'nm nomefile.a' e posso davvero vedere tutte le classi lì. Avrò bisogno di fare ulteriori lavori per verificare che tutto sia appeso correttamente ma che abbia un bell'aspetto. Grazie –

+0

Wow, utile pezzo di curiosità che non sapevo! – jstedfast

Problemi correlati