I originally got this error when atte开发者_JAVA百科mpting 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.0Cleaned 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)
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.
精彩评论