2012-05-14 14 views
14

Pobrałem TouchDB, "lekki aparat baz danych zgodny z Apache CouchDB, odpowiedni do osadzania w aplikacjach mobilnych lub stacjonarnych", co daje mi wiele folderów .framework (CouchCocoa.framework, TouchDB .framework i TouchDBListener.framework).Jak utworzyć wiązanie MonoTouch z .framework

Czytałem article on binding Obj-C libraries to MonoTouch, pokazuje how to bind a .a, ale nie jak wiązać .framework.

Jak wykonać powiązanie dla tych .framework? czy powinienem w jakiś sposób przygotować .a tych .framework przed ich użyciem (jeśli to w ogóle możliwe)?

--EDIT--

związane: https://bitbucket.org/LouisBoux/touchdb-monotouchbinding

Odpowiedz

1

Można użyć .framework plików podobnie jak .a plików. Na przykład. wszystkie powiązania, których MonoTouch zapewnia (w monotouch.dll), są tworzone z plików .framework.

+0

Ok, ale czy istnieje sposób na uzyskanie jakiegoś [LinkWith] (jak z plikami .a) z .framework, więc nie muszę ręcznie łączyć z argumentami mtouch? –

+0

Nie użyłem go z '[LinkWith]' ale istnieje zgłoszenie błędu o tym @ https://bugzilla.xamarin.com/show_bug.cgi?id=2530 – poupou

+0

Inną alternatywą jest http://stackoverflow.com/q/9078695/220643 – poupou

26

Bindowanie ramki .framework w MonoTouch wykonuje kilka kroków, a .framework to katalog, który zwykle zawiera wszystkie części pakietu biblioteki (np. Pliki nagłówkowe, zasoby i plik biblioteki). Oto ogólne kroki potrzebne do powiązania ramki .framework.

  • Utwórz projekt powiązań jak byś dla normalnego pliku biblioteki (libXXX.a)

  • Równowartość biblioteka w .framework jest plik bez rozszerzenia, który jest w katalogu głównym. Katalog framework, na przykład ostatnio napisałem wiązania dla RDPDFKit.framework, plik najwyższego poziomu był plikiem o nazwie RDPDFKit (bez rozszerzenia), zmień nazwę na "libRDPDFKit.a" i skopiuj do projektu wiązania i dodaj go do projektu. Utworzy kod znajdujący się za plikiem z obsługiwanymi platformami (np. X86, arm6 itd.). Cała dokumentacja znajduje się na stronie internetowej Xamarin.

  • Definiuj wiązania tak jak w normalnej bibliotece.

  • Jeśli framework ma .bundle, skopiuj ten projekt do programu (a nie do projektu powiązań), będzie musiał zostać dodany jako zasoby do programu. Dodaj ten katalog do projektu i wszystkie elementy poniżej, ponieważ zasoby w monotouch nie są obsługiwane w bibliotekach DLL.

  • Powstały plik DLL wiązania monotouch będzie zawierał cały plik .a do późniejszego łączenia, więc nie będziesz potrzebował pliku .a po zbudowaniu pliku .dll.

+0

Czy to normalne, że nic nie jest generowane w kodzie za platformą plików? Mówi tylko o LinkWith, SmartLink, Forceload, ale nic na temat celów. – Citroenfris