2013-01-24 10 views
5

Próbuję rozwiązać zagadkową zagadkę, która naprawdę doceniam wyjaśnienie, ponieważ pomoże mi to zrozumieć narzędzia i być pewnym co robię.Jeśli VALID_ARCHS ustawiono na armv7 armv7a, to w jaki sposób buduje xcode dla symulatora?

Natknąłem się na łamigłówkę podczas uruchamiania komendy xcodebuild w celu zbudowania aplikacji na mój iPhone. Znalazłem to, aby odrzucić "-sdk iphonesimulator6.0" z tym komunikatem: "Brak architektury do kompilacji dla (ARCHS = i386, VALID_ARCHS = armv7). "

I wtedy zobaczyłem moje VALID_ARCHS były ustawione na ARMv7 i że ukazał się wyjaśnić dlaczego xcodebuild chciał zbudować na symulatorze (co doprowadziło się wierzyć był Intel). Ale jak na ziemi, mój XCode IDE przejść wokół niego i udaje się zbudować na symulatorze (co robi)

Zmiana VALID_ARCHS do: VALID_ARCHS = "$ (ARCHS_STANDARD_32_BIT)", (który rozszerza się ARMv7 i armv7a) lub VALID_ARCHS = ARMv7 i386 wydawało się, że spełnione xcodebuild na tyle, aby zgodzić się na budowę dla symulatora. Pamiętaj, że pierwszy przypadek nadal nie zawiera i386! I muszę stwierdzić, że i386 staje się, w pewnych warunkach itions, implicit. Czy ktokolwiek może to potwierdzić i/lub rozwinąć?

Odpowiedz

1

Kiedy Xcode build na i386 zmienia te zmienne, można świadkiem tego w Xcode Log nawigatora ...

Są Zmienne Xcode manipulować w celu umożliwienia działa na i386

VALID_ARCHS = i386 Łuki = i386

można zrobić to samo poprzez wywołanie polecenia xcodebuild w następujący sposób:

xcrun xcodebuild VALID_ARCHS=i386 ARCHS=i386 ONLY_ACTIVE_ARCH=NO -arch i386 -sdk iphonesimulator7.1 -configuration Debug 
Powiązane problemy