The right way to extend UIRequiredDeviceCapabilities

I've added NFC support for my app. So, my UIRequiredDeviceCapabilities were extended from "armv7" to "armv7 nfc". This means I've prevented this application from running on devices supported by previous versions. Now I've received a message from Apple:

ITMS-90109: This bundle is invalid - The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions.

What is the right way to add new functions?

Accepted Answer

If NFC is now essential, you need to create a new app.

It would normally be better to make NFC optional, by continuing to provide the old behaviour on devices that don’t have NFC, and not adding it to the required capabilities.

What devices don’t have NFC now? With some of these capabilities you can require them by requiring a sufficiently new iOS version which only runs on hardware that has the feature. One example of that was OpenGL ES 2. Apple do allow to to require a newer iOS version that excludes some existing users.

Hello, We're reviving of a very old app, we need to use the same app-id.

The new one requires NFC and, so, it can now only run on iPhone.

is it possible to force the UIRequiredDeviceCapabilities ?

is it possible to force the UIRequiredDeviceCapabilities?

I believe that App Review has a way to allow this.

However, before you reach out to them you should carefully think about this choice. By narrowing the set of supported devices, you’re prevent existing users of your app from updating to your latest version. You should carefully consider whether that’s worth it, especially when dealing with a very old app. It might be better to simply ship a new app. Or do what endecotp’s recommended above, that is, not make NFC a requirement. Or you could do both, that is, publish a new app that requires NFC and also update your old app such that the existing functionality, the stuff that you’re users have been using for years, continues to work on devices with NFC.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

The right way to extend UIRequiredDeviceCapabilities
 
 
Q