2012-01-31 17 views
11

Dostarczono ramę przez niezależnego dostawcę sprzętu iPhone. Mam więc folder taki jak Device.framework. Wewnątrz tego folderu znajduje się plik binarny i zestaw plików .h. Są instrukcje, jak dodać to do projektu iOS i użyć zawartych w nim klas. Jednak faktycznie używam MonoTouch i chcę korzystać z biblioteki statycznej.Jak utworzyć bibliotekę statyczną z istniejącego środowiska w systemie iOS?

Czy istnieje sposób utworzenia biblioteki statycznej, która tworzy wszystkie klasy ze struktury dostępnej w bibliotece statycznej? Tak więc w moim projekcie MonoTouch łączyłbym się w bibliotece statycznej i miałbym dostęp do tej struktury.

Odpowiedz

12

A * .framework to po prostu pakiet zawierający: bibliotekę statyczną, nagłówki, powiązane dane meta. Skopiuj i wklej plik .framework i wyodrębnij plik static * .a i powiązane pliki nagłówkowe.

Jest to po prostu kwestia użycia narzędzia bouch na MonoTouch do wiązania biblioteki statycznej do użycia w projekcie MonoTouch. Istnieje świetny przykład na to, jak powiązać natywną bibliotekę z MonoTouch na Github. Z wytycznych dotyczących kierowania symulator + urządzenie i za pomocą atrybutu LinkWith osadzić bibliotekę statyczną w jednym * .dll:

Ponadto, upewnij się, aby sprawdzić btouch skorowidz tutaj:

+0

Zaakceptowałem ten jeden jako odpowiedź tylko dlatego, że ma link do BindingSample, który był użyteczny. Dzięki dwóm facetom za poświęcenie czasu na odpowiedź –

+0

@JWB z twoim najnowszym upvote (moim ;-) Masz teraz wystarczająco dużo punktów reputacji, aby upvote obu odpowiedzi :-) – poupou

7

Zmień nazwę tego pliku binarnego na Device.a. Możesz to zrobić, ponieważ struktura, o której wspomniałeś, nie jest tworzona przez firmę Apple, dlatego musi to być biblioteka statyczna, a nie dynamiczna.

Upewnij się, że twój projekt łączy tę bibliotekę (Device.a).

Dołącz nagłówki do projektu i podaj je w odpowiednich miejscach.

+3

i przemianowany plik jak sugerowano i zrobił "nm filename.a" i rzeczywiście widzę tam wszystkie klasy. Będę musiał wykonać dalszą pracę, aby sprawdzić, czy wszystko wisi prawidłowo, ale wygląda dobrze. Dzięki –

+0

Wow, przydatny kawałek ciekawostki, którego nie znałem! – jstedfast

Powiązane problemy