2012-06-04 3 views
7

Come usi ShareKit con MonoTouch?ShareKit con MonoTouch come?

Il MonoTouch Bindings project on GitHub sembra avere bindings for ShareKit ma non riesco a farli funzionare. Al momento ho un'applicazione per iPhone sviluppata usando MonoTouch in MonoDevelop, ma non ho idea di come ottenere effettivamente ShareKit nella mia applicazione.

Ho scaricato il progetto MonoTouch Bindings, ma quando I make nella directory ShareKit sembra richiedere ShareKit stesso. Ho quindi scaricato ShareKit, ma non sono sicuro di dover seguire le istruzioni di installazione per l'integrazione di ShareKit in un progetto XCode o anche se dovrei creare ShareKit. Ho provato a "costruire" un progetto di applicazione iPhone vuoto con ShareKit, ma alcune parti delle istruzioni non sono aggiornate per l'ultimo XCode, a quanto pare, sono rimasto bloccato nel processo. Sto cercando di farlo funzionare, ma le mie esperienze con XCode finora sono state limitate a quanto poco è necessario per lo sviluppo di MonoTouch.

Oppure esiste un binario di ShareKit iOS "precompilato" che potrebbe essere utilizzato con MonoTouch?

Qualcuno potrebbe verificare che ShareKit sia effettivamente utilizzabile con MonoTouch e illustrarmi i passaggi necessari per farlo funzionare?

Grazie in anticipo!

risposta

2

Per prima cosa scaricato da getsharekit.com o stai usando ShareKit 2.0? Se stai utilizzando il DL di getsharekit, ti consiglio vivamente di eseguire l'upgrade per primo. In secondo luogo qui alcune istruzioni per l'installazione di base per ottenere ShareKit a lavorare con MonoTouch:

Passi

1) Scaricare il codice

2) Aprire in Xcode e se il suo un App creare un nuovo Xcode progetto di tipo libreria iOS

3) Compilare la libreria e prendere nota dei framework necessari - questi vi aiuteranno in seguito quando si collegano in monotouch

3) Compilare una versione i386 Sim della lib e rinominare in libXYZLib_Sim.a - copiare questo in/Lib nel progetto e impostare la sua azione di compilazione su Nessuno.Puoi trovarlo in/ProjectLib/build/Debug-iphonephones/

4) Compilare una versione di arm6 con la versione corretta & copiala in/Lib nel progetto e imposta la sua azione di compilazione su Nessuna. È possibile trovare questo sotto/ProjectLib/build/Debug-iPhoneOS/

5) Eseguire il NovellHeaderParser in questo modo contro le directory che contengono i file di libreria .h

@@ mono "/ Users/XX/Progetti/NovellHeaderParser/NovellHeaderParser/bin/Debug/NovellHeaderParser.exe"/ Users/XX/Documents/ShareKitLib/ShareKit/Nucleo @@

questo dovrebbe produrre un file MonoMac.cs che è possibile importare nel vostro sistema

6) Ripetere il passaggio 5 per altre directory. NOTA, in realtà devi solo eseguire il parser con i file .h con i punti di ingresso, ad es. classi di alto livello che l'API chiama direttamente. sottoclassi, programmi di utilità, metodi di supporto non devono essere analizzati.

7) Unire tutti i file MonoMac.cs in un nuovo file MyLib.cs e aggiungere che al progetto in/lib - impostare le opzioni di generazione di Nessuno

8) Modificare eventuali riferimenti da MonoMac a MonoTouch

10) il parser potrebbe creare un file per ogni directory enum.cs analizzato, ma se non creare i propri chiamati MyLibEnum.cs con qualsiasi struct o enumerazioni necessari per l'API - aggiungerlo a/lib e impostare le opzioni per costruire Nessuno

11) Aprire una finestra di terminale e passare alla directory/Lib del progetto

12) eseguire la seguente riga di comando BTouch - questo creerà un wrapper.dll dalle interfacce definite in MyLib.cs @@ /Developer/MonoTouch/usr/bin/BTouch -v MyLib.cs -s MyLibEnum.cs @@

13) aggiungere qualsiasi enumerazioni o le strutture mancanti MyLibEnum.cs e ripetere il punto 12

14) correggere eventuali dichiarazioni multiple di selettori rinominandoli - questo può causare un problema più tardi (vedi nota 1)

15) Correggere eventuali riferimenti mancanti ad es. NSMutableArray non sembra esistere in monotouch quindi li cambio in NSArrays (penso che questi siano mutabili sotto monotouch comunque ???)

16) Torna a 12) e ripetere fino a quando non viene generata una DLL.

17) Aggiungere un riferimento alla DLL nel progetto

18) Aggiungere il seguente nella build> opzioni aggiuntive mTouch iPhone al BUILD SIMULATORE DEBUG/STAMPA: @@ -gcc_flags "-L $ {ProjectDir}/Lib -lMyLib_Sim -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load $ {ProjectDir}/Lib/libMyLib_Sim.un -ObjC" @@

'' 'noti' ''

senza finale/ON L $ {} ProjectDir/Lib

-lShareKitLib_Sim non ha bisogno ha bisogno il prefisso lib avvio o. un suffisso

aggiungere un -Framework per ogni quadro utilizzato per la creazione del lib - di cui sopra non è un elenco esaustivo

19) Aggiungere il seguente in iPhone costruire> opzioni mTouch addizionale alla iPHONE DEBUG/STAMPA BUILD: @@ -gcc_flags "-L $ {ProjectDir}/Lib -lMyLib -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load $ {ProjectDir} /Lib/libMyLib.a -ObjC" @@

20) PROVA!

+0

Non mi interessa se questa risposta è corretta, complimenti per lo sforzo! – scorpiodawg

+0

Grazie speriamo che aiuti l'OP! Inoltre, si prega di up-voto se pensate che la risposta aiuti –

+0

Wow! Lo proverò domani. Poiché la taglia si esaurisce prima di allora, accetterò semplicemente questo in gran parte sulla base dei tuoi sforzi. –

5

La maggior parte delle volte quando si va con i binding in MonoTouch è necessario scaricare i binding (o SDK) della libreria effettiva. Ad esempio, con i collegamenti TestFlight, è necessario scaricare l'SDK e posizionarlo nella stessa directory del makefile. Non mi sono personalmente disprezzato con ShareKit, ma suppongo che avrebbe funzionato allo stesso modo (so per certo che la maggior parte, se non tutti, dei binding nelle associazioni MT che il progetto GitHub funziona in questo modo). Non dovresti avere a che fare con Xcode. Basta scaricare l'SDK, posizionarlo nella directory corretta ed eseguire il makefile. Dovresti sputare una DLL per farti riferimento per l'uso con MonoTouch.

Uno dei limiti dell'utilizzo dei binding di ShareKit è che, per quanto ne so, le regolazioni dell'interfaccia utente devono essere eseguite in Objective-C prima di provare a utilizzare il linker. Se stai bene con l'interfaccia utente pronta all'uso, allora ci proverei. Altrimenti, ci sono un sacco di altre librerie open-source per creare una semplice finestra di dialogo di condivisione (e ora che Twitter è integrato in iOS, è ancora più semplice).

+0

La cartella principale nello zip scaricato sembra essere rinominata in sharekit e inserita all'interno della cartella (https://github.com/mono/monotouch-bindings/tree/master/ShareKit/bindings). – Rodja