2012-06-04 18 views
7

Jak korzystać z ShareKit z MonoTouch?ShareKit z MonoTouch w jaki sposób?

Wydaje się, że MonoTouch Bindings project on GitHub ma bindings for ShareKit, ale nie mogę ich uruchomić. Obecnie mam aplikację na iPhone'a opracowaną przy użyciu MonoTouch w MonoDevelop, ale nie mam pojęcia, jak faktycznie uzyskać ShareKit w mojej aplikacji.

Pobrałem projekt MonoTouch Bindings, ale kiedy I make w katalogu ShareKit wydaje się wymagać samego ShareKit. Następnie pobrałem ShareKit, ale nie jestem pewien, czy mam postępować zgodnie z instrukcjami instalacji, aby zintegrować ShareKit z projektem XCode, czy nawet, czy mam w ogóle zbudować ShareKit. Próbowałem "budować" pusty projekt aplikacji na iPhone'a z ShareKit, ale części instrukcji nie są aktualne dla najnowszego XCode, jak się wydaje, utknąłem w tym procesie. Próbuję to zrobić, ale moje dotychczasowe doświadczenia z XCode zostały ograniczone do tego, co potrzebne do rozwoju MonoTouch.

Czy istnieje "prekompilowany" plik binarny ShareKit iOS, który może być używany z MonoTouch?

Czy ktoś mógłby sprawdzić, czy ShareKit jest rzeczywiście użyteczny w MonoTouch i przeprowadzić mnie przez kroki wymagane do jego działania?

Z góry dziękuję!

Odpowiedz

2

Najpierw ściągnąłeś z getsharekit.com lub używasz ShareKit 2.0? Jeśli korzystasz z DL z getsharekit, to bardzo polecam najpierw dokonać upgrade'u. Drugi tu pewne podstawowe instrukcje instalacji dla coraz ShareKit pracować z MonoTouch:

Kroki

1) Pobierz kod

2) Otwórz w Xcode i jeśli jego App utworzyć nowy Xcode projekt biblioteki typu iOS

3) Skompiluj bibliotekę i zwróć uwagę na potrzebne frameworki - te pomogą ci później w monotuszu

3) Skompiluj wersję i386 Sim i zmień jej nazwę na libXYZLib_Sim.a - skopiuj to do/Lib w twoim projekcie i ustaw jego działanie build na None.Możesz znaleźć to w/ProjectLib/build/Debug-iphonesimulator/

4) Skompiluj wersję arm6 z poprawną wersją & skopiuj to do/Lib w swoim projekcie i ustaw jego działanie kompilacji na Brak. ten można znaleźć w katalogu/ProjectLib/Build/debug-iPhoneOS/

5) Uruchom NovellHeaderParser podobnie jak przed katalogów bibliotecznych, które zawierają pliki .h

@@ mono „/ Users/XX/Projekty/NovellHeaderParser/NovellHeaderParser/bin/Debug/NovellHeaderParser.exe”/ Users/XX/Dokumenty/ShareKitLib/ShareKit/Rdzeń @@

powinno stworzyć plik MonoMac.cs że można importować do systemu

6) Powtórz krok 5 dla innych katalogów. UWAGA: będziesz musiał uruchomić parser tylko dla plików .h z punktami wejścia np. klasy najwyższego poziomu, które API bezpośrednio wywołuje. podklasy, utils, metody pomocnicze nie muszą być analizowane.

7) Połącz wszystkie pliki MonoMac.cs do nowego pliku MyLib.cs i dodać, że do projektu w/lib - ustawić jego opcje kompilacji do Żaden

8) zmiana żadnych referencji Monoman do MonoTouch

10) parser może utworzyć plik enum.cs dla każdego katalogu analizowany, ale jeśli nie tworzyć własne zwane MyLibEnum.cs wszelkich elemencie lub teksty stałe potrzebnych API - dodaj je do/lib i ustawić opcje, aby zbudować Brak

11) Otwórz okno terminala i przejdź do katalogu/Lib dir Projekt

12) uruchom następujące polecenie btouch - to stworzy wrapper.dll z interfejsów zdefiniowanych w MyLib.cs @@ /Developer/MonoTouch/usr/bin/btouch -s -v MyLib.cs MyLibEnum.cs @@

13) Dodaj brakujące teksty stałe lub struktury do MyLibEnum.cs i powtórz Krok 12

14) Fix żadnych wielokrotne deklaracje selektorów przez nich zmiany nazwy - może to powodować problemy później (patrz uwaga 1)

15) Napraw brakujące referencje, np. NSMutableArray nie wydaje się istnieć w trybie monotouch, więc zmienię je na NSArrays (myślę, że i tak są zmienne pod monotouch ???)

16) Wróć do 12) i powtarzaj do momentu wygenerowania dll.

17) Dodaj odwołanie do biblioteki DLL do projektu

18) Dodaj następujące na iPhone budowlanej> dodatkowych opcji mTouch do narastania SIMULATOR DEBUG/release: @@ -gcc_flags „L $ {ProjectDir}/Lib -lMyLib_Sim -ramework QuartzCore -ramework CoreGraphics -ramework MessageUI -framework Security - framework UIKit -ramework CFNetwork -force_load $ {ProjectDir}/Lib/libMyLib_Sim.-ObjC” @@

'' 'Uwaga' ''

bez spływu/na -L $ {ProjectDir}/lib

-lShareKitLib_Sim nie musi potrzebować początkowy lub przedrostek lib. przyrostek

dodać jeden -framework dla każdego stosowanego w ramach tworzenia lib - powyżej nie jest exaustive lista

19) Dodaj poniższe do iPhone Budowanie> dodatkowe opcje mTouch do iPhone/release DEBUG BUILD: @@ @ -gcc_flags "-L $ {ProjectDir}/Lib -lMyLib -ramka QuartzCore -ramka CoreGraphics -ramka MessageUI -ramka Security-ramka UIKit-ramka CFNetwork -force_load $ {ProjectDir} /Lib/libMyLib.a -ObjC" @@

20) SPRAWDŹ TEST!

+0

Nie obchodzi mnie, czy ta odpowiedź jest poprawna, za wysiłek! – scorpiodawg

+0

Mamy nadzieję, że pomoże OP! Zachęcam także do głosowania, jeśli uważasz, że odpowiedź pomaga –

+0

Wow! Sprawdzę to jutro. Odkąd bounty skończyły się wcześniej, po prostu zaakceptuję to w dużej mierze w oparciu o twoje wysiłki. –

5

W większości przypadków, gdy zaczynasz pracę z powiązaniami w MonoTouch, musisz pobrać powiązania (lub SDK) z rzeczywistej biblioteki. Na przykład w przypadku powiązań TestFlight wymagane jest pobranie zestawu SDK i umieszczenie go w tym samym katalogu, co plik Makefile. Nie korzystałem osobiście z ShareKit, ale przypuszczam, że działałoby to w ten sam sposób (wiem na ten temat, że większość, jeśli nie wszystkie, powiązań w powiązaniach MT GitHub działa w ten sposób). W ogóle nie powinieneś mieć do czynienia z Xcode. Wystarczy pobrać SDK, umieścić go w odpowiednim katalogu i uruchomić plik Makefile. To powinno wypluć bibliotekę DLL, abyś mógł użyć jej w MonoTouch.

Jednym z ograniczeń używania powiązań ShareKit jest to, że, o ile mi wiadomo, korekty interfejsu użytkownika muszą być wykonane w Objective-C, zanim spróbujesz użyć linkera. Jeśli nic ci nie jest z gotowym interfejsem, to pójdę na to. W przeciwnym razie istnieje wiele innych bibliotek o otwartym kodzie źródłowym do tworzenia prostego okna dialogowego udostępniania (a teraz, gdy Twitter jest wbudowany w system iOS, jest jeszcze łatwiej).

+0

Główny folder w pobranym pliku zip wydaje się być przemianowany na sharekit i umieszczony w folderze (https://github.com/mono/monotouch-bindings/tree/master/ShareKit/bindings). – Rodja

Powiązane problemy