Switching from Xcode3 to Xcode4 - Can't Load Programs Onto Older Ipod Touch

iPhone app does not run on old device (3G, 3GS, ...)

This can come for various reasons. Until now this is are the cases pople have encountered:

  • bad cable -> try another one, or hold it really still when programming
  • unsuported features mentioned in info.plist -> check plist
  • unsuported architecture (by default Xcode4.2 uses standard arch= armv7 ) -> add armv6

Xcode 4.2 -- App doesn't run on hardware -- no error messages to be found

What device are you trying to run on? It is likely you need to add "armv6" as a build architecture. XCode doesn't do a good job of telling what's wrong in this case. Try the following.

  1. Select your project at the top of the Project Navigator and choose Build Settings in the right pane.

  2. Select the ARCHS setting under Architectures and add "armv6" by choosing "Other..."

  3. Make sure the ONLY_ACTIVE_ARCH is set to "No"

  4. Make sure that VALID_ARCHS is set to "armv6 armv7"

Also, the place you see the error message is in Organizer. Select the device you're trying to run on and choose 'Console'. You'll see an error after you try to run the app.

Xcode Build Succeeded but not run on iPhone

you are right - the problem is probably that the 3G runs an amrv6 and you are only building for armv7

in your build settings you find a setting for valid architectures. There should be one entry called armv7

just add another entry armv6 to that setting.
that should do the trick

How to test a new app on old hardware? (Xcode 4.3.2 with base SDK iOS 5.1; test-device is iPhone 3G with iOS 4.2.1)

We are testing applications on iOS 4 and 3 for some applications at my work and normaly the two key point are the arm achitecture and the deployment target as you already point out.

First, if you have multiple target, make sure you have the correct configuration everywhere.

Secondly, you pointed out that the armv7 "jumps" back to armv6.
It shouldn't happen.
Make sure you enter this field correctly with "armv6" on the first line and "$(ARCHS_STANDARD_32_BIT)" on the second line of the popup.

Finally, do you have any warnings or message in you console when you try to lauch the application ?

Xcode 4 says finished running my app on the targeted device -- Nothing happens

For those reading this in regards to Xcode 4.2, and attempting to run on an earlier device (e.g. iPhone 3G, 2G, iPod 1st gen, etc) I have another solution. New projects created in Xcode 4.2 by default specify 'armv7' in the 'Required Device Capabilities'. You'll need to remove this if wanting to support devices that run armv6 (e.g. the iPhone 3G).

Sample Image

Delete armv7 from the 'Required device capabilities' in yourProjectName-Info.plist

You may also need to change the build settings to compile with armv6 instead of armv7.

This is the default:

Sample Image

Double click on 'Standard (armv7)' to add another, then click the '+' in the popup, and type in 'armv6':

Sample Image

Click done and it should look like this:

Sample Image

Build and test on 2.2.1 iPod Touch with Xcode 3.2.2?

While under NDA, I can't be more explicit than to tell you to read this thread in the Apple Developer Forums, which includes an explanation of this problem.

Confused about iOS 5 SDK Capabilities vs iOS 5 Capabilities of the Device

You should always use the newest SDK as base SDK in your application. You can always target older iOS version with the "Deployment Target" setting, but you have to pay attention which new features you can use.

For example, iOS 5 brings two interesting new features, namely ARC and storyboards. You can use ARC if your deployment target is iOS >= 4.0, with the exception of weak references, which unfortunately do not work with iOS4. Storyboards are different, they need iOS 5, they won't work at all on older devices!

If you're using the newest XCode 4, you have to do some extra work to fully support iOS 4 or older versions. This is because the armv6 code generation has been deleted from all templates. Newer devices use the armv7 instruction set, but you can compile your application so that it targets both the armv6 and armv7 instruction set. See my other post on this topic.

How to change the default Xcode iphone simulator when testing

For me works changing active SDK from 3.2 to 4.0. If your project is mentioned to work on iPad and iPhone (or for compatibility matters) I believe the only way is manually switching active executable before running your app on simulator.
Apple:"iPhone OS 3.2 does not support iPhone and iPod touch devices. It runs only on iPad.".



Related Topics



Leave a reply



Submit