25 April 2014
Changes in minimum OS version: iOS 6
Starting in daily build 2014.2277, we are changing the minimum supported version on iOS from 5.1 to 6. This means that if you do a device build with 2014.2277 (or later), your app will not run on a device whose version is below iOS 6.
This change is needed to move our iOS architecture forward, and finally pay off technical debt that has been accumulating for nearly 18 months — an eternity in the mobile space.
Now that previous iOS versions (3.x, 4.x, 5.x) account has declined to a mere 2% (according to Apple), we can no longer justify accumulating this sort of technical debt. It’s difficult to maintain; it’s fragile; and it’s not future-proof — we inevitably had to introduce new hacks.
Back when iOS 6 was released, Apple made fundamental changes to how apps supported multiple orientations. Unfortunately, these changes were not compatible with code designed to work against earlier versions of iOS.
Historically, to maintain support for both older and modern iOS versions, we had to do things that were not true to the modern way of doing things in iOS. This created a conflict in our architecture, one we predicted would generate problems in the future. And we were right — you may recall these unsavory strings in your build.settings:
CoronaUseIOS6PortraitOnlyWorkaround CoronaUseIOS6LandscapeOnlyWorkaround CoronaUseIOS6IPadPhotoPickerLandscapeOnlyWorkaround CoronaUseIOS7LandscapeOnlyWorkaround CoronaUseIOS7IPadPhotoPickerLandscapeOnlyWorkaround
In the latest daily builds, we have modernized our orientation support, fully embracing the iOS 6 model for orientation support, thus removing the internal architectural conflict. That means we’ll no longer be able to deal with orientation properly on older iOS versions such as 5.1.
The great thing about these changes are that they completely remove the need for the above hacks. For example, built-in UI like the photo picker and Game Center no longer require the hack. They’ll also eliminate the need for them in the future, so newer UI that Apple introduces will not need separate hacks.
If you must release on iOS 5.1, we recommend you use an older daily build (prior to 2014.2277) or the last public release. All future daily builds and future releases will require iOS 6.0 or higher.
Enterprise users take note that if you update to the latest daily build:
(1) You should update your Xcode project so that the “iOS Deployment Target” is 6.0, as this controls the minimum version.
(2) ‘UISupportedInterfaceOrientations’ is now ignored, so if you want to control the orientations that the application (not to be confused with the Corona content) supports, your implementation of the ‘CoronaDelegate’ should override ‘application:supportedInterfaceOrientationsForWindow:’.