XCode 4.2. issue: Standard (armv7)
Asked Answered
M

7

4

I want to update my app in the App Store but when I try to upload it I get an error that armv6 is not supported in my app. The problem is I cannot even choose Armv6 as an Architecture.

I have the following Architecture settings:

  1. Architectures: Standard (armv7)
  2. Base SDK: Latest iOS (iOS 5.0)
  3. Build Active Architecture Only : NO
  4. Valid Architectures : armv6 armv7 armv7f armv7k

I thought because of 3 and 4 everything is set right.

I can NOT change 1 for something else.

What can I do?

Myrick answered 17/6, 2011 at 9:16 Comment(3)
I don't think we can submit anything targeting 5.0 at all at the moment?! And this makes me think you are using tools that are not supposed to be used for the app store at the moment.Senter
True, i will downgrade to Xcode 4.0.2. again. ThanksMyrick
Submit a Radar on issues you have with 4.2. Although it is true that we shouldn't write production code in 4.2, they still look at these kinds of issues. bugreport.apple.comPaphlagonia
E
2

It's better to downgrade back to stable version of SDK for Distribution builds. Apple even wrote about that in previous beta builds notes.

I partially fixed that problem by setting Architecture to "armv6 armv7". After that i could build universal binary, but simulator builds is broken. :)

Enswathe answered 30/6, 2011 at 9:37 Comment(4)
Yes, I downgraded! I was not aware of this information and just too curious about ios5 tools.Myrick
You need to make the override architecture-specific; i.e. ARCHS[sdk=iphone*] = armv6 armv7. There's a "+" button to do that in Xcode 4; it's how the code-signing setting is set up (it doesn't sign simulator builds).Horsehair
I took the same approach, but I'm running on simulator just fine. Xcode 4.2 Build 4C177Mediterranean
this thread was started before Xcode 4.2 for iOS5 was released. Beta version has this problem. Now this solution works without issues.Enswathe
A
1

The way we fixed ours was to go into the target build settings, select the Architectures list and select other... Then hit the "+" button to add your own called "armv6" without the quotes. Hit done, clean targets and archive.

Keep in mind that nothing needs to be "selected" in the Architectures list. It is only a list of architectures supported and should contain just two entries.

Ardine answered 6/10, 2011 at 0:16 Comment(0)
V
1

this is the best solution, yeahhh!

Select a "Architectures: Standard (armv7)" Select a "Other..." Select a "+" button add a "armv6" select a "Done"

Vert answered 17/10, 2011 at 20:38 Comment(0)
L
1

Some back story for everyone seeing duplicate symbol errors and/or warnings about armv6 is missing.

  1. armv6 is required if your apps supports deployment targets below iOS 4.3.
  2. The latest Xcode 4.2 by default has architecture = $(ARCHS_STANDARD_32_BIT) which maps to armv7.
  3. Xcode 4.1 has the same env variable, but it map to armv6 and armv7.

Doing a armv6+armv7 in Xcode 4.2 requires some trickery...

A) add in "armv6" to the list of Architectures. However this breaks builds for Xcode 4.1 since "armv6" + $(ARCHS_STANDARD_32_BIT) = armv6 armv6 armv7 -> duplicate symbol errors

B) use the variable $(VALID_ARCHS) which maps to armv6 armv6 (and i386 for simulator builds)

Leicestershire answered 26/10, 2011 at 8:5 Comment(0)
E
1

Remove all architecture from xcode then it will take arm v6 and arm v7.

Emergency answered 16/11, 2011 at 6:39 Comment(0)
A
0
  1. Select a "Architectures: Standard (armv7)"
  2. Select a "Other..."
  3. Select a "+" button
  4. add a "armv6"
  5. select a "Done"

Good luck

Antagonist answered 8/10, 2011 at 14:45 Comment(0)
L
0

Remove environment variable $(ARCHS_STANDARD_32_BIT) from Architectures setting. The add "armv6" and "armv7" to the list of Architectures. If you're building your own libs - they need to have those settings too.

Laundryman answered 11/11, 2011 at 10:18 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.