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
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With