2013-01-24 4 views
5

Ich versuche ein kryptisches Rätsel zu lösen, das mir die Erklärung wirklich zu schätzen weiß, da es mir helfen wird, die Werkzeuge zu verstehen und sicher zu sein, was ich tue.Wenn VALID_ARCHS auf armv7 armv7a gesetzt ist, wie erstellt xcode dann den Simulator?

Ich stieß auf das Rätsel, wenn ich xcodebuild commandline aufbaute, um meine iPhone App zu erstellen. Ich fand es, '-sdk iphonesimulator6.0 "mit dieser Nachricht abzulehnen: " Keine Architekturen zum kompilieren für (ARCHS = i386, VALID_ARCHS = armv7). "

Ich sah dann meine VALID_ARCHS zu ARMv7 gesetzt wurden und dass offenbar zu erklären, warum xcodebuild für Simulator zu bauen verweigert (was ich mich dazu gebracht zu glauben war Intel). Aber wie auf der Erde ist mein XCode IDE geht um ihn herum und verwaltet für Simulator zu bauen (was es tut)

Ändern VALID_ARCHS zu: VALID_ARCHS = "$ (ARCHS_STANDARD_32_BIT)"; (die expandiert nach ARMv7 und armv7a) oder VALID_ARCHS = ARMv7 i386 Schien zufrieden zu haben xcodebuild genug, um zustimmen, für den Simulator zu bauen.Wir beachten Sie, der erste Fall listet immer noch nicht i386! Und ich muss schließen, i386 wird, in bestimmten cond itionen, implizit. Kann irgendjemand dies bestätigen und/oder erweitern?

Antwort

1

Wenn Xcode Build auf i386 es diese Variablen ändert, können Sie dies in Xcode Log-Navigator Zeuge ...

Dies sind die Variablen manipulieren, um Xcode auf i386 zu ermöglichen, läuft

VALID_ARCHS = i386 ARCHS = i386

Sie das gleiche durch den Aufruf xcodebuild Befehl in der folgenden Art und Weise tun:

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