2
votes

I originally got this error when attempting to validate my app store .ipa.

iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6

I changed my build settings to set Architectures to armv6 and armv7

Here are my current build settings.
architectures: armv6; armv7
Base SDK: ios 5.0
Build Active Architecture Only: No
Valid Architectures: armv6; armv7
Deployment Target: ios 4.0

Cleaned all targets, and attempted to rebuild for archiving. After changing architectures to explicitly add armv6, I got a bunch of the following linking errors w/ Three20.

Undefined symbols for architecture armv6: "_OBJC_CLASS_$_TTTableControlItem", referenced from: (35 of these total on different .o files)

I then changed all of the three20 project settings to match the settings above, cleaned all targets, and attempted to rebuild for archive, but got the same error.

I haven't got desperate enough to try reinstalling xcode & sdks

Am I missing something here? Looked over Three20 commit logs, but I haven't noticed any changes related to ios5. I'm going to try upgrading three20 for giggles now.

Please note that my product owners are not willing to set deployment target to ios 4.3 (which also seems to resolve the issue)

1
I still submit apps using xcode 4.1, until iOS 5 comes out officiallyaporat
The GM is out. The iOS5 will be available to the general public in 4 days (8/12).Hardip Singh

1 Answers

2
votes

I figured it out and wanted to post the solution just in case anyone else comes across this.

Basically, when I modified all of the referenced three20 projects the first time, I only did this for the main target.

I did this again, but this time for all targets (including unit tests), and the issue was resolved. I was able to build w/out errors, and the outputted .ipa file was validated by iTunes Connect.

Hope this helps.