2012-05-14 10 views
14

Ho scaricato TouchDB, un "leggero motore di database compatibile con Apache CouchDB adatto per l'incorporamento in app mobili o desktop", che mi dà un sacco di cartelle .framework (CouchCocoa.framework, TouchDB .framework e TouchDBListener.framework).Come creare un binding MonoTouch da un .framework

Sto leggendo il article on binding Obj-C libraries to MonoTouch, mostra how to bind a .a, ma non come associare un .framework.

Come si crea un binding per questi .framework? o dovrei in qualche modo creare un .a di questi .framework prima di usarli (se possibile?)?

--EDIT--

correlati: https://bitbucket.org/LouisBoux/touchdb-monotouchbinding

risposta

1

È possibile utilizzare i file .framework proprio come i file .a. Per esempio. tutti i binding che MonoTouch fornisce (in monotouch.dll) sono fatti dai file .framework.

+0

Ok, ma c'è un modo per avere un qualche tipo di [LinkWith] (come con file .a) con un .framework, quindi non devo fare il collegamento manualmente con gli argomenti di mtouch? –

+0

Non l'ho usato con '[LinkWith]' ma c'è una segnalazione di bug a riguardo @ https://bugzilla.xamarin.com/show_bug.cgi?id=2530 – poupou

+0

Un'altra alternativa è http://stackoverflow.com/q/9078695/220643 – poupou

26

Il collegamento di un .framework in MonoTouch richiede diversi passaggi, un .framework è una directory che di solito contiene tutte le parti di un pacchetto di libreria (ad es. I file di intestazione, le risorse e il file di libreria). Ecco i passaggi generali necessari per associare un .framework.

  • Creare un progetto binding come si farebbe per un normale file di libreria (libXXX.a)

  • La biblioteca equivalente in un .framework è il file senza l'estensione che è alla radice del. directory framework, ad esempio, ho scritto di recente binding per RDPDFKit.framework, il file di livello superiore era un file denominato RDPDFKit (senza estensione), rinominalo in "libRDPDFKit.a" e copiarlo nel progetto di bind e aggiungerlo al progetto. Creerà un codice dietro il file con le piattaforme supportate (ad es. X86, arm6, ecc.). Tutta la documentazione per questo è sul sito Web di Xamarin.

  • Definire le associazioni come si farebbe per una libreria normale.

  • Se il framework ha un file .bundle, copiarlo sul progetto del programma (non sul progetto di bindings), sarà necessario aggiungerlo come risorse per il programma. Aggiungi questa directory al progetto e tutti gli elementi sottostanti, questo perché le risorse in monotouch non sono supportate nelle DLL.

  • La DLL di collegamenti monotouch risultante conterrà l'intero file .a per il collegamento successivo, quindi non sarà necessario il file .a dopo aver creato il file .dll.

+0

È normale che nulla sia generato nel codice dietro la piattaforma di file saggio? Dice solo LinkWith, SmartLink, Forceload ma nulla riguardo agli obiettivi. – Citroenfris

Problemi correlati