iPhone Development 101

iPhone 101

Code Tips



armv6 / armv7 Issues

Related error: "Finished running appname on devicename" without actually launching the app

In order to support apps running on older iPhones/iPods, the app has to be compiled for the armv6 architecture. However, Xcode4 defaults to armv7 only. You'll need to add the armv6 architecture in the project's build settings. Here's how:

1. Click the folder icon at the top of the navigator frame, then
2. Click on your project name.
3. In the middle frame, you'll see two sections: PROJECT and TARGET. Click on the PROJECT.

In the Architectures section of Build Settings, click on Architectures. In Xcode 4.2 it's set to "Standard (armv7) - $(ARCH_STANDARD_32_BIT)". Select the "Other" option here.

Click the minus icon to remove the $(ARCH_STANDARD_32_BIT) line. Then click the plus icon to add a new line, and add "armv6". Then click Done. Repeat this step with "armv7".

If your older iPod or iPhone is running an earlier version of iOS, you should also scroll down to the Deployment section of Build Settings and set the iOS Deployment Target:

Now you can build and run your app on older devices.

See Also: Stack Overflow: How to build for armv6 and armv7 architectures with iOS 5

More Xcode 4 Tips and Tricks