Minimum SDK Version on iOS

Hi all,

probably it is a dumb question and there is some really apparent thing that I’m missing, but I don’t know how to specify the minimum supported SDK version when building an app for iPhone.

I’m using the public Corona version, so I can select the dropdown with the SDK version to use for the build (set to 9.2), but it seems there is no way to specify the Minimum iOS Version.

In fact uploading the build on iTunes I see that the Minimum iOS Version is 6.0, but I’d much like it to be 7.x.

Any suggestion?

Thanks in advance

I’ve further investigated on this issue.

Unfortunately my app is crashing at launch on ios 6.x because of missing GameController.framework (which is available with iOS 7+).

I found the same reported kind of issue here in the forum:

https://forums.coronalabs.com/topic/60740-app-wont-run-on-ios-613-because-of-missing-gamecontrollerframework-which-is-not-used-by-me/

My problem though is that I built the app selecting SDK 9.2, uploaded it on iTunes and the store published it with Minimum iOS Version 6.0.

How is it possible since I read that:

Apple iOS apps run on the SDK they are compiled against and two older versions of iOS. So iOS 9 built apps will run on iOS 8 and iOS 7. If you need to still support iOS 6, you would need to build against iOS 8.

I’m using Corona build 2016.2806 (2016.1.9).

How can I make sure the app I’m building has the correct minimum sdk version? And how to fix it?

Please help, I’m really out of ideas!

Trying to build again, I inspected the Info.plist file inside the generated app package and here there are the following keys:

\<key\>CoronaSDKBuild\</key\> \<string\>2016.2806\</string\> \<key\>DTPlatformVersion\</key\> \<string\>9.2\</string\> \<key\>DTSDKName\</key\> \<string\>iphoneos9.2\</string\> \<key\>MinimumOSVersion\</key\> \<string\>6.0\</string\>

So you can see I’m building against the 9.2 SDK, using corona build 2016.2806, but the minimum OS version is 6.0 instead of 7.0.

Is it a bug of the corona build I’m using that can be solved with another specific build?

Anyone on this?

Grab the latest daily build tomorrow. I think it contains a fix for making the controller framework optional for iOS 6.

Hi Rob, thanks for the reply, I’ll download it and try this solution.

I’m only worried that there might be other dependencies or plugins I used that work from iOS 7.x and above.

Can you please explain me how the minimum OS version is meant to work, just so I can understand better?

Is there any way to actually control it manually (via the build settings maybe)?

I read it should be automatically set to 2 versions prior of the SDK used to compile the app, but apparently it is not so.

@emily

To set the minimum iOS SDK in Corona you add it to the plist section for iphone in build.settings:

build.settings

settings = { iphone = { plist = { MinimumOSVersion = "7.0" } } }

The idea for setting minimumOS is if your app uses a feature that doesn’t work in an older version. For instance, if your app requires 3D touch which is an iOS 9 only feature, you would set the MinimumOSVersion to “9.0” and when people with iOS 8 devices go to iTunes, they will not be presented with your app since you said it only works on iOS 9. 

It doesn’t do you any good to put in MinimumOSVersion = “3.2” since we don’t support builds that old any way. You can’t use it to make us go back in time, only restrict older devices from using your app.

Rob

I’m posting here even if it’s the post is a little bit old. But I’d like to be sure to understand properly : if I want to set the MinimumOSVersion to iOS 8.0, knowing that I’m using iOS SDK 9.2 and I’ve got the latest public build of Corona SDK, I only need to set :

{ MinimumOSVersion = "8.0" }

It doesn’t matter which iOS SDK I’m using, as long as it is compatible with iOS 8.0 ? Am I correct ?

I’ve further investigated on this issue.

Unfortunately my app is crashing at launch on ios 6.x because of missing GameController.framework (which is available with iOS 7+).

I found the same reported kind of issue here in the forum:

https://forums.coronalabs.com/topic/60740-app-wont-run-on-ios-613-because-of-missing-gamecontrollerframework-which-is-not-used-by-me/

My problem though is that I built the app selecting SDK 9.2, uploaded it on iTunes and the store published it with Minimum iOS Version 6.0.

How is it possible since I read that:

Apple iOS apps run on the SDK they are compiled against and two older versions of iOS. So iOS 9 built apps will run on iOS 8 and iOS 7. If you need to still support iOS 6, you would need to build against iOS 8.

I’m using Corona build 2016.2806 (2016.1.9).

How can I make sure the app I’m building has the correct minimum sdk version? And how to fix it?

Please help, I’m really out of ideas!

Trying to build again, I inspected the Info.plist file inside the generated app package and here there are the following keys:

\<key\>CoronaSDKBuild\</key\> \<string\>2016.2806\</string\> \<key\>DTPlatformVersion\</key\> \<string\>9.2\</string\> \<key\>DTSDKName\</key\> \<string\>iphoneos9.2\</string\> \<key\>MinimumOSVersion\</key\> \<string\>6.0\</string\>

So you can see I’m building against the 9.2 SDK, using corona build 2016.2806, but the minimum OS version is 6.0 instead of 7.0.

Is it a bug of the corona build I’m using that can be solved with another specific build?

Anyone on this?

Grab the latest daily build tomorrow. I think it contains a fix for making the controller framework optional for iOS 6.

Hi Rob, thanks for the reply, I’ll download it and try this solution.

I’m only worried that there might be other dependencies or plugins I used that work from iOS 7.x and above.

Can you please explain me how the minimum OS version is meant to work, just so I can understand better?

Is there any way to actually control it manually (via the build settings maybe)?

I read it should be automatically set to 2 versions prior of the SDK used to compile the app, but apparently it is not so.

@emily

To set the minimum iOS SDK in Corona you add it to the plist section for iphone in build.settings:

build.settings

settings = { iphone = { plist = { MinimumOSVersion = "7.0" } } }

The idea for setting minimumOS is if your app uses a feature that doesn’t work in an older version. For instance, if your app requires 3D touch which is an iOS 9 only feature, you would set the MinimumOSVersion to “9.0” and when people with iOS 8 devices go to iTunes, they will not be presented with your app since you said it only works on iOS 9. 

It doesn’t do you any good to put in MinimumOSVersion = “3.2” since we don’t support builds that old any way. You can’t use it to make us go back in time, only restrict older devices from using your app.

Rob

I’m posting here even if it’s the post is a little bit old. But I’d like to be sure to understand properly : if I want to set the MinimumOSVersion to iOS 8.0, knowing that I’m using iOS SDK 9.2 and I’ve got the latest public build of Corona SDK, I only need to set :

{ MinimumOSVersion = "8.0" }

It doesn’t matter which iOS SDK I’m using, as long as it is compatible with iOS 8.0 ? Am I correct ?