2015-07-06 19 views
6

Pracuję nad aplikacją na iOS i aplikacją Watchkit.Jak korzystać z Realm (zainstalowany w Carthage) z ramą w aplikacji Swift?

czytałem kilka rzeczy dotyczących najlepszych praktyk i postanowiłem stworzyć ramy niestandardowe, jak NathashaTheRobot doradzić tutaj: https://realm.io/news/architecting-app-apple-watch-natashatherobot/

Więc staram się wykorzystywać Realm w moim ramy.

I po installation instructions for Carthage:

  1. Add github "realm/realm-cocoa" to your Cartfile .

  2. Run carthage update .

  3. Drag RealmSwift.framework and Realm.framework from the Carthage/Build/iOS/ directory to the “Linked Frameworks and Libraries” section of your Xcode project’s “General” settings.

  4. On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase”. Create a Run Script with the following contents:

    /usr/local/bin/carthage copy-frameworks

and add the paths to the frameworks you want to use under “Input Files”, e.g.:

$(SRCROOT)/Carthage/Build/iOS/Realm.framework 
$(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework 

Potem dodałam mój ram do Target Membership zarówno Realm.framework i RealmSwift.framework.

Ale gdy próbuję zbudować projekt, otrzymuję ten błąd:

ld: framework not found Realm for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Potem dał strzał do lipo:

$ lipo -info Carthage/Build/iOS/Realm.framework/Realm                          
Architectures in the fat file: Carthage/Build/iOS/Realm.framework/Realm are: i386 x86_64 armv7 arm64 

Czy macie jakieś pomysły co może być robisz źle tutaj? Dziękuję Ci.


EDIT:

OK więc znalazłem problem i to było całkowicie niezwiązane Realm ...

Wygląda Usunąłem nagłówków i zasobów odcinków mojego ram Budowa Fazy jakoś (które były i są jeszcze puste). Po prostu je odkładam i wszystko kompiluje/działa tak, jak powinno.

Headers and Resources sections

nie ulec pokusie, aby usunąć te dwa

+0

można wyizolować i reprodukować swój problem w pewnym przykładzie projektu i przesunąć go gdzieś fx Github? –

+0

Dobry pomysł, powinienem był tego wcześniej spróbować. I ... to działa. Więc prawdopodobnie jest coś nie tak z moim projektem. Co znajdę, a następnie zaktualizuję moje pytanie. Dziękuję – Pym

+0

Dobrze wiedzieć. Nie ma za co :) –

Odpowiedz

11

Czy to możliwe, że to jest twój cel testu, który nie może znaleźć ram? Musisz dodać macierzystą lokalizację frameworków do sekcji "Ścieżki wyszukiwania ramek" w testach jednostkowych (prawdopodobnie $(SRCROOT)/Carthage/Build/iOS).

Oto przykładowy projekt z Swift ramach sprzedaży pakietowej RealmSwift jako zależność, które mogą okazać się przydatne, aby porównać swoje ustawienia kompilacji przed: https://static.realm.io/debug/ParentFramework.tgz

+0

Już jest, w moich testach jednostkowych i w mojej strukturze :( – Pym

+0

czy możesz uzyskać projekt, który przesłałem do uruchomienia? Cieszę się, że mogę popatrzeć na twój projekt, aby pomóc Ci określić, co może być inaczej skonfigurowane – jpsim

+0

Tak, dziękuję za pomoc Znalazłem rozwiązanie i nie było to związane z Rzeczywistością, edytowałem to pytanie – Pym