Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode 6 Standard architectures exclude armv7s

Tags:

ios

xcode6

I am experimenting with Xcode 6 Beta, and noticed armv7s disappeared from Standard Architectures. I did scan through Xcode 6 release notes, but didn't see changes on that. Can anyone confirm this change?

Xcode 5.1.1:

enter image description here

Xcode 6 Beta: enter image description here

Update

There is a thread on iOS 8 Beta forum discussing this topic as well. https://devforums.apple.com/thread/244407?tstart=0

Also note @ThomasW had an answer on adding armv7s to Architectures.

like image 313
vladof81 Avatar asked Jun 04 '14 14:06

vladof81


People also ask

How do I add arm64 to excluded architectures?

Basically, you have to exclude arm64 for the simulator architecture, both from your project and the Pod project. To do that, navigate to Build Settings of your project and add Any iOS Simulator SDK with value arm64 inside Excluded Architecture.

What is build active architecture only?

The "build active architecture only" setting causes everything except the current Mac's architecture to be ignored (and the current one is of course valid), hiding the problem. Instead, you should look up a row or two in the settings, and change the "Architectures" setting to "Standard".

What is Valid_archs?

VALID_ARCHS (Valid Architectures) Space-separated list of identifiers. Specifies the architectures for which the binary may be built. During the build, this list is intersected with the value of ARCHS build setting; the resulting list specifies the architectures the binary can run on.

What is Only_active_arch?

ONLY_ACTIVE_ARCH (Build Active Architecture Only) Description: Boolean value. Specifies whether the product includes only object code for the native architecture.


1 Answers

I also filed a bug on this and got a reply stating that this is intentional. If you want to build for armv7s you have to add the architecture manually. I have now idea why this change was made. I'll update this if I get additional information.

Update from the dev forums:

The reason for including armv7s would be marginal backward compatibility. But the general differences between armv7 and armv7s instruction sets are minor. So if you choose not to include armv7s, the targeted armv7 machine code still runs fine on 32 bit A6 devices, and hardly one will notice performance gap.

-- Zhou Yang

like image 191
Florian Avatar answered Sep 28 '22 02:09

Florian