How to add armv6 architecture to Xcode project?

17,716

Solution 1

Follow my step

  1. In your picture you choose level change it to "Combined"
  2. Click at Standard (armv7) $(ARCHS_STANDARD_32_BIT)
  3. Choose "Other"
  4. CLick at "$(ARCHS_STANDARD_32_BIT)" and the Click "-" to delete it
  5. Click "+" to add new item
  6. Type "armv6"
  7. Click "+" again
  8. Type "armv7"
  9. Click anywhere to finish

I hope this help

I just have the same problem and I try to do this and it work for me

Solution 2

I could run my code on an old 1st generation iPhone using the string armv6 armv7 instead of $(ARCHS_STANDARD_32_BIT) in architectures and setting "Build Active Architecture Only" to YES.

Solution 3

In Project Settings, select "Standard" for the architecture (not "Optimized"). This should allow you to select "armv6" for the Active Architecture. This means it should also work on older devices (barring any other deprecations) once it's on the app store.

Change your base SDK to iOS Device 4.x or below so you can see your armv6 architecture.

Solution 4

I just had this same problem. I loaded up a number of older XCode projects and they would compile and run fine with the simulator however as soon as you tried to run or debug on the device (which in my case in a iTouch v2) it would simply say it was running, then say the application exited. No errors, no logs.

Thanks to someone on the iOS Developer forums for putting me on the right track. At some point over the last couple of XCode releases (not counting the XCode releases for OSX Lion as I have access only to OSX Snow Leopard) Apple changed how projects were set up even older ones that were loaded.

The standard architecture used to include both arm6 and arm7 however, and at least with XCode 4.2 standard now only includes Arm 7 $(ARCHS_STANDARD_32_BIT) and apparently resets an old project's settings as well. Which went un-noticed to me as I used the simulator.

I tried changing the configuration string to "arm6 arm7" and this did not work. However the error that was returned contained the solution (at least for me an hopefully others still having this problem.)

In XCode 4.2 if you wish to build down to older hardware such as v1 and v2 devices simply change the project setting for Architectures to $(VALID_ARCHS) which defaults to the old standard of Arm6 and Arm7.

You may as mentioned previously be required to set the Build Active Architecture Only to "Yes" for the debug option (this however is not confirmed by me to be required).

I hope this helps anyone else still having this issue and I apologize for bumping this thread.

Share:
17,716

Related videos on Youtube

Anders Lindsetmo
Author by

Anders Lindsetmo

Just started learning Objective C back in february 2011, so I'm new to this. No programming experience from earlier lives.. :o

Updated on June 04, 2022

Comments

  • Anders Lindsetmo
    Anders Lindsetmo about 2 years

    I got a warning that my project needs to include the armv6 binary.. but I don't really know how to do that. Have been googling for an answer, but non of the suggestions seems to fit? Is armv6 something I need to download to support in my app, or does Xcode have it, I just need to include it in my project settings? Also, my app should support OS back till 3.1.

    I have added i386 behind armv6 and armv7 in the Debug section, but I dunno if that fixes the problem. Does this seem right to you people with more experience?

    Screenshot of Architecture settings:

  • Praveen S
    Praveen S almost 13 years
    Change your base SDK to ios 4.x or below.
  • Teofilo Israel Vizcaino Rodrig
    Teofilo Israel Vizcaino Rodrig over 12 years
    If you get an error like this "Error launching remote program: failed to get the task for process 1837", try to change the release distribution.
  • Talon
    Talon over 12 years
    I also only have 5.0 as the option for the Base SDK this is with XCode 4.2
  • wouterds
    wouterds almost 11 years
    Finally, the solution!