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?

Nathaniel Ford
  • 20,545
  • 20
  • 91
  • 102
Malte Onken
  • 769
  • 1
  • 9
  • 20
  • 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. – Eiko Jun 17 '11 at 10:09
  • True, i will downgrade to Xcode 4.0.2. again. Thanks – Malte Onken Jun 17 '11 at 10:10
  • 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. http://bugreport.apple.com/ – Kalle Jun 17 '11 at 14:38

7 Answers7

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

Evgen Bodunov
  • 5,438
  • 2
  • 29
  • 43
  • 1
    Yes, I downgraded! I was not aware of this information and just too curious about ios5 tools. – Malte Onken Jun 30 '11 at 12:07
  • 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). – tc. Aug 19 '11 at 16:21
  • I took the same approach, but I'm running on simulator just fine. Xcode 4.2 Build 4C177 – AWrightIV Sep 30 '11 at 04:32
  • this thread was started before Xcode 4.2 for iOS5 was released. Beta version has this problem. Now this solution works without issues. – Evgen Bodunov Nov 16 '11 at 07:09
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.

1

this is the best solution, yeahhh!

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

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)

Kim Le
  • 11
  • 1
1

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

Nathaniel Ford
  • 20,545
  • 20
  • 91
  • 102
Pawan
  • 11
  • 1
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

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.

oliver
  • 111
  • 1
  • 4