w pliku wykonywalnym aplikacji brakuje wymaganej architektury armv6


81

Używam xCode 4.2 i próbuję wdrożyć moją aplikację. Weryfikacja kończy się niepowodzeniem i pojawia się następujący komunikat o błędzie:

application executable is missing a required architecture armv6

Wartość moich architektur jest ustawiona na Standard (armv7). To JEDYNA opcja na liście rozwijanej. Podstawowe SDK: iOS 5.0 (jest to jedyna opcja) Deployment SDK: 3.2 Buduj tylko aktywną architekturę: NIE Prawidłowe architektury: armv6 armv7 armv7f armv7k

Czy ktoś zna rozwiązanie tego problemu?



W rzeczywistości zduplikowane pytanie ma inne rozwiązanie, które polega na powrocie do starej wersji xCode. Zastanawiałem się, czy jest jakiś sposób na rozwiązanie tego problemu w obecnej wersji.
azamsharp

Okazuje się, że jedynym rozwiązaniem jest odinstalowanie xCode 4.2 i zainstalowanie xCode 4.1
Azamsharp

1
Ponieważ iOS 5.0 i Xcode 4.2 to oprogramowanie w wersji beta, nadal objęte są umową NDA. Najlepszym rozwiązaniem jest omówienie ich na forach programistów Apple: devforums.apple.com . Jeśli napotkasz błąd w narzędziach, pamiętaj o przesłaniu raportu na bugreport.apple.com .
Brad Larson

Odpowiedzi:


83

W Xcode 4.2 GM jest to nadal problem, ale możesz go rozwiązać, wykonując następujące czynności.

  1. Przełącz się do widoku plików / folderów w projekcie Xcode

  2. Wybierz swój projekt (niebieska ikona)

  3. Wybierz swoją aplikację w obszarze Cele na środku ekranu.

  4. Przejdź do ustawień kompilacji

  5. Znajdź Architektury> Dystrybucja

  6. Rozwiń tę sekcję, aby zobaczyć zarówno debugowanie, jak i wydanie

  7. Zmień „Standard (armv7) - $ (ARCH_STANDARD_32_BIT)” na „Inne ...”

  8. Zamień „Standard (armv7) - $ (ARCH_STANDARD_32_BIT)” na „armv6”, a następnie dodaj nowy element „armv7”

Pamiętaj, że może być konieczne zrobienie tego dla wszystkich dołączonych projektów, takich jak frameworki, takie jak TAPKU

wprowadź opis obrazu tutaj


Naprawdę nie rozumiem kroku 8 ... Czy mógłbyś to rozwinąć?
Samuel

4
Jeśli wybierzesz INNE z listy rozwijanej, otrzymasz pole z siatkami, możesz dodać armv6 w jednej linii i armv7 w następnej linii. Dodany zrzut ekranu jest nieprawidłowy.
J3RM

To mnie uratowało. Wielkie dzięki !
fyasar

1
Upewnij się, że „Budowanie Aktywny Architecture Only” jest ustawiony na „NIE” W przeciwnym razie, jeśli jest podłączony do urządzenia będzie budować tylko na tym urządzeniu ...
user739711

46

W przypadku Xcode 4,5 ustaw cel wdrożenia na co najmniej iOS 4.3 i to rozwiąże problem. armv6 i wcześniejsze wersje iOS prawie wymarły.


2
Bardzo dziękuję za to, kosztowało mnie to już 2 godziny bólu głowy!
RickJansen,

2
tak, ustawienie celu na iOS 4.3 rozwiązuje problem również w najnowszym 4.5.1 ... dzięki
Jim Jose

40

Łatwy sposób na zrobienie tego:

1) Kliknij lewym przyciskiem myszy ikonę projektu ( niebieska ikona pod przyciskiem „Uruchom”).

2) Obok ikony projektu (po jej prawej stronie) kliknij lewym przyciskiem myszy nazwę projektu pod „PROJEKT” (białe tło).

3) Wybierz zakładkę „Ustawienia budowania” i poszukaj podmenu „Architektury” (pierwsze). Kliknij lewym przyciskiem myszy „Standard (armv7) $ (ARCH_STANDARD_32_BIT)” i wybierz „Inne ...”

4) Kliknij ikonę „-”, aby usunąć oryginalną wartość ( „$ (ARCH_STANDARD_32_BIT)” ). Kliknij ikonę „+” i wpisz „armv6” (bez podwójnych cudzysłowów). Kliknij ponownie ikonę „+” i dodaj „armv7” (również bez cudzysłowów). Kliknij „Gotowe” .

5) Upewnij się, że „Build Active Architecture Only” jest ustawione na „No” (powinno być)

6) Obok ikony projektu (po jej prawej stronie) kliknij lewym przyciskiem myszy nazwę projektu w sekcji „CELE” i powtórz kroki 3, 4 i 5.

7) Naciśnij cmd + I na klawiaturze (lub Produkt -> Profil w menu Xcode) i sprawdź, czy wszystko jest w porządku.


3
Uważam, że te instrukcje są bardziej zrozumiałe, ale nie zapomnij o tej ważnej uwadze z @ J3RM: „Pamiętaj, że być może trzeba będzie to zrobić dla wszystkich uwzględnionych projektów, takich jak frameworki, takie jak TAPKU”
benvolioT

moje ustawienia były takie, że „Build Active Architecture Only” było ustawione na true - dzięki za rozwiązanie!
Chris Brandt,

W kroku 4 wspomniałeś o kliknięciu Gotowe. Ale nie widzę żadnego przycisku DOne. :/ Czy coś mi umyka?
rohan-patel

5

Moje środowisko to Xcode 4.5.1. Zmiana dwóch rzeczy rozwiązała ten problem.

  1. Ustawienie celu wdrożenia na co najmniej iOS 4.3.
  2. Utrzymywanie tylko architektury armv7 na liście architektur w ustawieniach kompilacji i jawne usuwanie wszystkich innych (w tym armv6).

Tak, ja też. Moja aplikacja tylko na iPada odmówiła zbudowania, dopóki nie usunąłem armv7s z listy architektur.
Mike Gledhill,

4

Na to pytanie natrafiam, szukając odpowiedzi na ostrzeżenie:

warning: iPad: application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7 (-19033)
Unable to validate your application. - (null)

Inne odpowiedzi nie rozwiązały mojego problemu, a potem zdałem sobie sprawę, że zmieniłem wartość CFBundleExecutable. Kiedy wróciłem do starej wartości, wszystko znów poszło gładko.

Nie jestem pewien, co jest bezpośrednią przyczyną tego ostrzeżenia, ale przynajmniej mogę ponownie rozpowszechniać kompilacje ad hoc.


Naprawdę dziwne, dostałem to samo ostrzeżenie i kilka niepowiązanych. Zmieniono wartość z CFBundleExecutablepowrotem na to, co było i wszystko poszło dobrze. Podziękować!
Adriano Lucas

3

Wszystkie odpowiedzi nie pomogły w moim przypadku, używając Xcode 4.2.1.

To, co zrobiłem, zmieniło się Architecturesz armv7na armv6 armv7i zadziałało. Lubię to:

wprowadź opis obrazu tutaj


3

Dodanie armv6 było tylko częściowo problemem dla mnie, aby rozwiązać ten sam problem z Xcode 4.5. Musiałem również zwiększyć cel wdrożenia z iOS 4.1 do iOS 5.0, aby działał. Wiele godzin frustracji na takie proste rozwiązanie. Mam nadzieję, że to pomoże.


5
Wystarczy zwiększyć cel do 4,3.
SK9

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.