2012-12-31 15 views
19

CocoaPods pytanie:CocoaPods/Podspec i * .framework

Stworzyłem ramy w zestawie z biblioteki statycznych wewnątrz, w zależności od AFNetworking i pakiet zasobów (w oparciu o te dwa tutoriale do tworzenia FWKs http://www.blackjaguarstudios.com/blog/programming/2012/11/22/xcode-45-creating-ios-framework-and-hold-my-hand-im-3-years-old i https://github.com/bclubb/iOS-Framework)

Chciałbym stworzyć podspec, aby ludzie po prostu dodali linię w swoim Podfile, co w razie potrzeby zainstalowałoby pod moim modułem i AFNetworking.

Czy to możliwe?

+0

Wszystko jest możliwe. ;) –

Odpowiedz

24

Rzeczywiście dużo zrobiłem w moim biurze. Mamy mnóstwo prywatnego kodu źródłowego, który jest wielokrotnie wykorzystywany. CocoaPods pomógł w szybszym rozpoczęciu nowych projektów i ich aktualizacji.

Chociaż istnieje możliwość dodania struktury do podspecu, znacznie łatwiej było mi po prostu przekazać statyczną bibliotekę i nagłówki za pośrednictwem CocoaPods, zamiast martwić się o framework.

Trzeba będzie zaktualizować podspec oparty na projekcie, ale tutaj są ważne elementy:

s.source_files = 'StaticLib/Headers/*.h' 
s.preserve_paths = 'StaticLib/libYourLibrary.a' 
s.library = 'YourLibrary' 
s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/ProjectFolder/LibraryFolder' }  

s.dependency = 'AFNetworking' 

To skopiować bibliotekę statyczną nad jak również przynieść ponad AFNetworking ze swojej kapsuły też. Spowoduje to, że Twoja statyczna biblioteka będzie znacznie mniejsza (bez konieczności jej kompilacji) i przyspieszy to, jak szybko użytkownik może zaimportować swój moduł.

Jeśli trzeba użyć ramy, ten sam materiał z powyżej nadal obowiązuje, ale może masz jakieś lekkie szczypanie do zrobienia. Cała struktura to dość stateczna struktura statycznej biblioteki lib i nagłówków, więc po co zawracać sobie głowę dodatkowymi elementami. Źródło nadal jest wbudowane w bibliotekę statyczną lPods.a. Mam nadzieję, że to ci pomoże.

+0

Dzięki, tylko wiedząc, że to popchnie mnie do dalszego badania =) – Pasta

+0

Próbowałem z tym repo: https://github.com/BugsterIO/BugsterIO-iOS i następujący wiersz w podfile: pod 'BugsterIO' ,: podspec => "https://raw.github.com/BugsterIO/BugsterIO-iOS/0.8/BugsterIO.podspec" . Ale to nie działa. Dowolny pomysł? – Pasta

+0

Błąd: Niezdefiniowane symbole dla architektury i386: "_OBJC_CLASS _ $ _ Bugster", do którego odwołuje się: – Pasta