iosmetaltargeting

How to only target newer iOS devices?


I'm building Metal apps. Some hardware, like the iPad mini 2, is not too powerful, my apps can't run on it, tho it supports iOS 12, so changing my iOS target won't help preventing an install from that device.

I want to support A9 or better, maybe A8, tho not A7 or worse.

My current Valid Architectures are arm64 armv7 armv7s. My iOS target is iOS 10.

What build settings are you guys using to only white list newer devices?


Solution

  • This is regrettably harder than it should be, because Apple has done a poor job of providing capability keys that allow you to target specific devices and architectures. Instead, often, the best you can do is gate your app to particular features that correspond (roughly) to the devices you deem adequate to run your app.

    If you want to limit your app to A9-caliber devices, the best option you have (AFAIK) is to add the arkit value to the UIRequiredDeviceCapabilities key in your Info.plist. This will ensure that your app can't be downloaded on "underpowered" devices (those with an A8 processor or less). It's not perfect, but when it comes to safeguarding against poor user experience on devices that aren't up to the task, it's pretty much the only tool in the toolbox.