Today, Apple officially released iOS 6 and Xcode 4.5.
iOS 6, by default
Starting with daily build 919, all device builds will automatically be iOS 6 compatible. You will no longer need to select the target iOS SDK. We will only present that option when we have builds for iOS betas.
In order for you to do device builds, you should upgrade to Xcode 4.5 GM (not to be confused with ‘4.5 GM seed’). As of today, this is available from Apple.
Fate of iOS 4.3
For the time being, future daily builds will be backwards compatible to iOS 4.3. However, we will soon only go as far back as iOS 5.1. There are 2 reasons:
First, as I explained previously, Apple has been dropping support for older versions of iOS, so it doesn’t make sense for us to fight Apple on this one.
Second, all iOS 4.3 devices can be upgraded to iOS 5.1.
If you’re using CoronaBuilder for automated nightly builds of your Corona project, you’ll need to make a couple of adjustments starting with the next daily build.
First, you should also upgrade to Xcode 4.5 GM.
Next, you should modify the ‘sdkPath’ param, so it points to the the new SDK location. Older versions of Xcode used to be installed at ‘/Developer’. Newer versions of Xcode typically reside at ‘/Applications/Xcode.app/Contents/Developer’.
Finally, if you have the latest version of CoronaBuilder, you might have been building for iOS 6 Beta seeds. If that’s the case, you should remove the ‘platformVersion’ key as well, starting with daily build 919.
Corona Enterprise devs will likewise need to upgrade to Xcode 4.5 GM starting with daily build 919.
If you try to build your existing Xcode project, you will likely see a linker error:
ld: file is universal (2 slices) but does not contain a(n) armv7s slice
This is because Xcode must now support the iPhone 5 which uses Apple’s new A6 SoC. This chip supports the old ‘armv7’ which is used by modern ARM cores. It also adds support for ‘armv7s’, a custom Apple instruction set that adds VFPv4 support, a.k.a. vector floating point support.
Currently, Corona does not support armv7s. We plan to support armv7s soon, but in the mean time, you’ll need to make some adjustments to your Xcode project — or rebuild your project using the CoronaSampleApp Xcode project as a starting point.
If you open up your Xcode project in Xcode 4.5, you’ll see something like the following. Note the presence of both ‘armv7’ and ‘armv7s’:
The main change you need to make is to make sure the builds for device only build armv7 (i.e. remove ‘armv7s’). Here’s what they should look like after:
In this setup, you are basically telling Xcode, that by default you still want the standard instruction sets, but for iOS, you are adding override behavior, forcing it to only build for armv7. Once we add armv7s support, you can easily highlight the override and remove it (hit the delete key).
If you’re making the adjustments to your Xcode project directly, be sure to select the “Project” instead of the “Target” on the left pane.