Today I spent several hours searching for why I couldn’t install and run my application (targeted for iOS 4.0 and over) on an iPod Touch 2nd generation when there is no problem with the iPad. There was no warning, no error, just this little cue:
After searching near of the certificates, Xcode, the iPod, I finally found where the problem came from: the processor’s architecture.
Indeed, the second generation of iPod (and iPhone 3G, 2G, iPod first generation, etc) has a processor built on the ARMv6 architecture while the iPad is based on an ARMv7 architecture.
So you will asked me why the problem comes from there?
Now with Xcode 4.2 when you create a new project, by default it will:
- in the “MyApp-Info.plist”: limit the capabilities of the device to the ARMv7 architecture only
- in the “Build Settings”: define the basic architectures in ARMv7
To fix these problem you just have to:
- Delete the “armv7” in the “Required Device Capabilities”
- Add the “armv6” architecture into the “Build Settings”
I hope it’ll save you a lot of time the next time you’ll create a new project for older device with Xcode 4. For more information you can see a similar question which has been asked on stackoverflow here.