Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

when should i build app with armv7s support?

Tags:

ios

armv7

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

like image 526
21k Avatar asked Oct 31 '12 01:10

21k


People also ask

What is arm64 architecture in IOS?

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.

What is ARMv7 iPhone?

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.

What is build architecture in Xcode?

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.


2 Answers

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 :)

like image 123
Mohit Padalia Avatar answered Oct 20 '22 13:10

Mohit Padalia


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.

like image 8
Steven Fisher Avatar answered Oct 20 '22 14:10

Steven Fisher