What is this selection for? I have the Architectures set to 'Optimized (armv6 armv7)' so a fat binary should be getting build with both, right? So why does this need to set this in the menu? What does it do?
views:
631answers:
2armv6 is compatible with all iPhone/iPod touch/iPad devices.
armv7 is for newer devices which support OpenGL ES 2.0, including iPhone 3GS, recent iPod touch and iPad devices.
Well mostly you do not need it, but even if you are building fat binaries you may not always be building both versions.
If you check the Build settings for the target there is an option in the Architectures section named "Build Active Architecture Only". I think by default this is selected when you are building for debug. The idea being that if you have armv6 device plugged in Xcode is smart enough to detect that and only build that version saving you some time.
Of course when you are building for distribution the option will not be checked to ensure you build for both architectures (not just the active one).
So I guess the short answer is that you do need to mess with it as Xcode will set it for you based on which device you have plugged in.