Sunday, April 18, 2010

Xcode Fun: warning: building for deployment target '3.1.3' requires an armv6 architecture.

I just spent an hour tracking down this error, I was trying to deploy to my iPhone device after testing in the simulator, and upgrading to a universal application.  I found that I was unable to select armv6 from the active architecture window.  I kept getting the error:
warning: building for deployment target '3.1.3' requires an armv6 architecture.
and another error about needing to use 3.2 for an IPAD.

I selected project settings from xcode, and everything was set up.  What I finally figured out is that I had to select the target, and then select 'Get Info' in order to display the dialog for MY TARGET.  From there I found my Architectures was set incorrectly.  I changed it to standard, (armv6 & armv7) and then I was able to deploy to my target device.

The key concept to remember seems to be that the targets is what matters, not the project setting (which is different from Visual Studio).

4 comments:

  1. Thank you! You just saved me a ton of time. Sure wish Apple would tie the project and target settings together more tightly. This is confusing.

    ReplyDelete
  2. The targets override the project. If the entry is in *bold*, it is overriding the level below. You can view all overrides at the target level by selecting "Show: Settings defined at this level". Simply hit the delete key while highlighting the target entries for architecture, to switch back to the architecture defined at the project level.

    ReplyDelete