1

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?

Heestand XYZ
  • 1,993
  • 3
  • 19
  • 40
  • 1
    You may set your valid architectures to just arm64, this will enable you to develop only for A7 and above. As warrenm mentions in his answer, Apple does not provide a way to target specific devices. You may also look at the below table for reference http://iossupportmatrix.com/ – kerry Oct 09 '18 at 05:00

1 Answers1

4

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.

warrenm
  • 31,094
  • 6
  • 92
  • 116
  • Testing this now, just uploaded, waiting for review. I added ”arm64”, ”metal” and ”arkit”. Also switched from iOS 10 to iOS 11 for ”arkit” support. Thanks for the tip! – Heestand XYZ Oct 09 '18 at 20:00
  • It worked! Thanks. I also had to change the Metal Shader Language version for iOS 11 support: https://stackoverflow.com/questions/52767403/how-to-specify-metal-shader-language-version – Heestand XYZ Oct 15 '18 at 11:53
  • I get why Apple wants the largest possible app deployments amongst devices, but not being able to better target more recent devices with advanced CPUs, as can be easily done with Android, is pretty debilitating. It results in the dumbing down of app capabilities to the lowest common denominator. – Nostradamus Aug 08 '21 at 06:12