Today when i try to submit my app (update) to appstore, the Organizer told me :
"iPhone/iPod Touch : application executable contains unsupported architecture(s): armv7s"
I clearly remember that its last version was submitted with both armv7 and armv7s set and succeeded, but now Organizer changed its mind?
to remove armv7s flag is simple, but my app is Universal, will the armv7s-removed app run on all iOS devices (iPhone 5 for example)? when should i build with aremv7s?
Thank you.
EDIT : xcode version here is first 4.5 then i tried 4.5.1
arm64 is the current 64-bit ARM CPU architecture, as used since the iPhone 5S and later (6, 6S, SE and 7), the iPad Air, Air 2 and Pro, with the A7 and later chips. armv7s (a.k.a. Swift, not to be confused with the language of the same name), being used in Apple's A6 and A6X chips on iPhone 5, iPhone 5C and iPad 4.
ARMv7 is the processor instruction set used starting with the S5L8920 in the iPhone 3GS, S5L8922, S5L8930, S5L8940, S5L8942, S5L8945, S5L8950, and S7002 devices. Processors that support ARMv7 instructions maintain backwards compatibility with ARMv6 instructions.
Build Active Architecture Only This is the bool value which specifies the architectures Xcode is going to build for all the valid architectures or only for the one on which the app is currently being run on by looking to the target selected for. By default in Debug mode Build Active Architecture Only value is YES.
Ran into the same issue when updating my app on the store, I clearly remember when the last version of the app was submitted it had both armv7 and armv7s architectures with deployment target OS 4.3. Today when updating the very same app the error came up.
Finally I tried to upload the binary using Application Loader and it was successfully uploaded to the store, so probably there is some recent validation in place by apple when submitting using Organizer.
To upload the binary using Application Loader Goto Organizer > Right Click on Archive > Reveal in Finder. Right Click the Archive file > Show Archive Content
Go to Products > Application > [Your APP.app]
Compress [Your APP.app] and upload using Application Loader.
hope this helps :)
The latest Xcode can build executables with armv7 and/or armv7s code. armv7 code is required for all devices produced after the iPhone 3G (not including the 3G) and before (but not including) the iPad 4, iPhone 5; the iPad 4 and iPhone 5 can run armv7 code, but also armv7s code. Older iPhones can only run armv6 code.
You are already building armv7 code. You should continue to do so, and build armv7s code as well as soon as you can adequately test your code on an armv7s device. But if you are not able to test on an armv7s device, you can just ship armv7 code.
Your error message makes me wonder if you ran an older version of Xcode that doesn't support armv7s. armv7s is supported only by Xcode 4.5.
The flip side of this is that Xcode 4.5 drops support for armv6. You can pick supporting the older CPUs or the newer CPUs, but not both.
A final wrinkle: To support 16:9 resolution (the iPhone 5 screen) you need to use Xcode 4.5. This is not a technical requirement, but Apple is enforcing it by policy nonetheless.
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