Search code examples
iosapp-storeappstore-approvalarkit

How to submit an update with arkit UIRequiredDeviceCapabilities restriction?


We have submitted v1.0 of our ARKit app to the App Store without the UIRequiredDeviceCapabilities ARKit key in place.

We want to submit an update with this key, but receiving the following error

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. Refer to QA1623 for additional information: https://developer.apple.com/library/ios/#qa/qa1623/_index.html

As we're technically restricting the devices capable of using the app, this goes against Apple's policy. Is there any workaround anyone is aware of to push an update through when the restriction is for ARKit?

Or would our only choices be either :

1) Submit an entirely new app, removing the current one from the App Store.

2) Limit the damage with the IsSupported flag, and inform the user that they can't use the app due to their device is not supportable.

Any help would be great.


Solution

  • Apple is pretty clear on this, as you saw in your quoted section. The basic idea is that if I install v1.0 of your app on my non-ar approved device, I should always be able to update it so long as my OS version is supported.

    You pointed our your two choices, and while which one you select is up to you, a few considerations would be:

    • How many users do you have? If it is not a lot, create a new bundle for the app. Then push an update to your current build informing users it is deprecated and they should switch
    • The official approach would be to use isSupported, but if there is so little of your app that a user can experience without it, then you will likely have annoyed users who did not see and/or ignored any warnings to "it's really an ar app, please don't install it!".

    Honestly, if your app is in its early stages, I would recommend going with the first one to save yourself potentially frustrated users for a long time.