iOS 11 target version

I'm updating an app which has been around since 2011. The main goal is switching to 64-bit so it'll run on iOS 11. I also cleaned up deprecated stuff and a number of warnings, etc.


Anyway, the latest iOS is 11.4 as of now. So I set that as the target version. This means the app requires iOS 11.4. I don't have any specific need for 11.4 (as opposed to 11.0) though. I just picked it as its the latest version currently.


I'm wondering, though, would it be better to just pick iOS 11? Since I'm not aware of anything I need from 11.4, wouldn't it be more flexible for the end users to just require 11 so any 11 version will allow them to install and run the app?


Or is it best to require the latest version?

Also, I'm using the latest Xcode which picks the latest SDK (11.4). Can I require 11.0 when building with the 11.4 SDK? From that standpoint I'm thinking its simpler to just let it always pick latest if its a pain to target an earlier version than the SDK you're building against.

Anyway, just looking for some tips / best practice / advice here.

So I'm thinking there may be an issue with customers who have older devices. On one hand I can see the argument behind just targeting the latest version (11.4), however, it looks like that eliminates people with older devices where their iOS device can't update to iOS 11.


I discovered the below iOS Support Matrix.


http://iossupportmatrix.com/


I wonder, though, if there's no filled dot, I guess that means that version of iOS won't run on the corresponding device. But, if my app is targeted to that version of iOS will it run on a newer device?


In other words, using that matrix, if I target iOS 10, and make sure to build 64-bit, can my app also run on iPhone X with iOS 11?


If so, then perhaps targeting iOS 10 is a bit safer since that would then take us the whole way back to iPhone 5 and the whole way forward to iPhone X giving a much larger range of devices. If we go with iOS 11 then its only iPhone 5s forward.


In short:


  • The app needs to run on the latest devices with the latest iOS
  • The app doesn't need any specific functionality from newer iOS versions as far as we're aware (it was created back in 2011)
  • We'd like to support the widest range of devices possible to avoid eliminating customers with devices which are stuck on an older iOS version

Don't risk over thinking it.


Apple recommends focusing on support for iOS versions first, not devices. The dev should focus on features their app(s) may depend on that require specific device support.


Your app(s) will support at least iOS 11.x, as currently required. You can choose to also set the 'Deployment OS' which would flag the minimum iOS support. The upper support is known as the base SDK, and you have no choice but what the tool/Xcode you are using dictates for it.


Apple typically recommends supporting at least one major iOS version back, so in your example, you'd want to set the Deployment OS to whichever iOS 10 you've tested against that is offered (not all point releases are offered for that setting). This will give you a support range from 10.x to 11.x.

iOS 11 target version
 
 
Q