Stworzyłem niestandardową strukturę Objective-C. Chciałbym zaimportować go do dowolnego projektu iOS i użyć jego funkcji zarówno na symulatorze systemu iOS, jak i na rzeczywistym urządzeniu. Aby zaimportować szkielet, łączę go za pomocą ustawienia Fazy kompilacji> Łącz binarne z bibliotekami w aplikacji docelowej. Jestem wtedy w stanie zaimportować go do jednej z moich klas z tym stwierdzeniem:Błąd Xcode 6 - "Brakująca wymagana architektura i386" podczas tworzenia symulatora systemu iOS
#import <CustomFramework/CustomFramework.h>
mogę instancję klasy mojego ramowa za dobrze, ale gdy próbuję uruchomić mój projekt na urządzeniu, pojawia się następujący błąd komunikat:
dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework
Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp
Reason: image not found
a jeśli próbuję uruchomić go na symulatorze, mam inny komunikat o błędzie:
ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CustomFramework", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Dzieje się tak, gdy wystąpienia klasy z ram. Jeśli zaimportuję strukturę, ale w rzeczywistości jej nie używam, moja aplikacja zostanie pomyślnie zbudowana. To po prostu błędy, gdy z jakiegoś powodu tworzę instancję klasy z frameworka.
Aby zainstalować aplikację na urządzeniu, podążyłem za odpowiedzią this SO. Zamiast łączyć framework, dodałem nową fazę Copy Files w ustawieniu docelowym: Build Phases, ustaw Destination to Framework i dodałem moją frameworku.
To działa świetnie; jednak chciałbym przetestować również moją aplikację na Symulator iOS. Kiedy próbuję uruchomić moją aplikację na symulatorze, nadal pojawia się błąd "brakuje wymaganej architektury i386". Próbowałem rozwiązania zaproponowane w prawie każdym tematem SO można znaleźć, i nic nie pomógł mi rozwiązać ten problem.
Proszę zauważyć, że próbuję użyć mojego niestandardowego frameworka w nowym projekcie Xcode, więc żadne ustawienia aplikacji/kompilacji nie zostały zmienione z domyślnych.
Jak mogę naprawić ten błąd, aby uruchomić aplikację na Symulator iOS i urządzenie z ramą dołączoną do projektu? Każdy wgląd byłby bardzo doceniony!
Dziękuję za odpowiedź! Nadal niedorzeczne jest to, że aż do 2015 roku nadal musimy uciekać się do ręcznego budowania, aby uzyskać przyzwoite ramy (samouczek jest podobny, 10 stron ?!). Wstydź się, Apple! – Rick77
@ Rick77 Cieszę się, że mogę Ci pomóc! Całkowicie się zgadzam.Rozwijam także aplikacje dla Windows i Windows Phone, i nawet nie musiałem o tym myśleć na tych platformach. – Alexander
@Alexander Mój framework nie został skompilowany dla architektury Symulatora iOS. Obsługuje tylko urządzenie, Jak sprawić, aby moja struktura działała w Symulatorze. Korzystam z Ramy. –
Arun