2016-01-17 32 views
6

Od Xcode 7, istnieją pewne biblioteki/ramy łączącej opcje w XcodeJakie są biblioteki łączące opcje w Xcode?

Przejdź do aplikacji Target w karcie projektu

General -> Embedded Binaries 
General -> Link Frameworks and Libraries 
Build Phases -> Target Dependencies 
Build Phases -> Link Binary with Libraries 

Oto kilka sposobów, znalazłem

  • Korzystanie Alamofire pokazuje Embedded Binaries opcja

Alamofire.framework jest automagicznie dodawany jako zależność docelowa, połączona struktura i osadzone środowisko w fazie budowy plików kopii, która jest wszystkim, czego potrzebujesz do zbudowania na symulatorze i urządzeniu.

  • Creating your first iOS Framework pokazuje, że dodanie Library.xcodeproj do obszaru roboczego, a następnie Build Phases -> Link Binary with Libraries

  • Carthage Tutorial: Getting Started pokazuje, że przeciąganie Library.framework do General -> Link Frameworks and Libraries. Wydaje General -> Link Frameworks and Libraries i Build Phases -> Link Binary with Libraries są takie same

  • Carthage wydaje się rozróżniać iOS i OS X.

Jeśli budujesz dla OS X: «Ogólne» swoje cele wniosku zakładka ustawienia, w sekcji "Osadzone pliki binarne" przeciągnij i upuść każdy framework, którego chcesz użyć z folderu Kartagina/Kompilacja na dysku.

Jeśli budujesz dla iOS tvOS lub watchOS: W aplikacji zakładki cele Ustawienia «ogólne», w «Linked Frameworks i Sekcji Bibliotek» przeciągnij i upuść każdej ramy, którego chcesz używać z folder Carthage/Build na dysku.

Czytanie Linking to a Library or Framework, wiemy, że te opcje dotyczą łączenia ram w naszą aplikację/framework.

Ale jakie są między nimi różnice? Czy każda z nich ma jedną opcję?

Odpowiedz

3

Dla dynamicznych struktur zbudowanych z Kartaginy Zwykle używam takiej konfiguracji.

  • połączyć bibliotekę z dowolnym celu, który chcesz użyć go w Musisz to, aby móc importować ramy w kodzie.
  • Osadź bibliotekę tylko w celu aplikacji zawierającej. Spowoduje to skopiowanie struktury w pakiecie aplikacji. Jeśli go nie osadzisz, Twoja aplikacja ulegnie awarii po uruchomieniu, ponieważ nie możesz znaleźć struktury.

Tylko aplikacja docelowa jest odpowiedzialna za osadzanie wszystkich frameworków i ich zależności. W ten sposób, jeśli rozszerzenie i aplikacja używają frameworka, zostanie ono rozpowszechnione tylko raz.

Dla interfejsu Xcode:

  • przeciąganie ramy do Ogólne -> Binaries Wbudowane doda ramy do obu „Link binarne z bibliotekami” i „Embed Ram” budować fazy
  • przeciągnięcie ramy do Ogólne -> Połączone frameworki i biblioteki dodadzą strukturę tylko do fazy budowania "Połącz binarnie z bibliotekami".

Widoki w sekcji Ogólne wydają się być wypełniane z zakładki fazy budowy, aby można było użyć dowolnego z nich.

Mam nadzieję, że ma to sens.

Edytuj: Zależności docelowe to tylko cele, które należy zbudować, zanim można będzie zbudować bieżący cel. Twój cel aplikacji wyświetli tutaj jego rozszerzenie, dzięki czemu rozszerzenie zostanie zbudowane, gdy tylko zbudujesz swoją aplikację.