Reputation: 22939
I have an iPhone App which should run on armv7 as well as armv6. For debugging the App should run in the simulator too.
The Standard in Xcode 4.2 is this:
armv7 ($(ARCHS_STANDARD_32_BIT)
)
It is not clear to me what $(ARCHS_STANDARD_32_BIT)
stands for and if I should use the two:
Or all three like this
What is the best option for this in my case? And how does Architectures
work with Valid Architectures
Upvotes: 14
Views: 21891
Reputation: 22939
Update with Xcode 4.5: Apple added the new architecture armv7s
, which adds optimisations for the new hardware of the iPhone 5.
Since I could not test our app on the new iPhone5, I removed this architecture from our app by changing the supported architecture from $(ARCHS_STANDARD_32_BIT)
(which means armv7
+ armv7s
) to only armv7
.
If you want or have to support the older iPhone 3G you also need to addd armv6
.
You need to do this for both Architectures and Valid Architectures.
Upvotes: 8
Reputation: 1332
To run in the simulator you don't have to do anything.
You can leave the Valid Architectures
setting at armv6 armv7
, because, according to the docs:
During the build, this list is intersected with the value of ARCHS build setting
To support armv6 and armv7, set the architectures to $(ARCHS_STANDARD_32_BIT) armv6
, $(ARCHS_STANDARD_32_BIT) currently expands to armv7.
Also check if there is a "Required device capabilities" = UIRequiredDeviceCapabilities
setting in your plist file, as Xcode will add armv7 for new projects there.
Upvotes: 16