AR App rejected for showing error screen about device not supporting AR

I have an AR app that relies on AR plane detection (ARWorldTrackingConfiguration). The app has been rejected by app store review three times due to 2.1: App Completeness. The specific problem seems to be that when ARWorldTrackingConfiguration is not supported on the current device, we show an informative error screen telling the user that their device is not supported.

A few points:
  • I have tested the app on all the physical hardware I have access to, from an iPhone 6s to an iPhone 11, and have never seen this error. I suspect it may have something to do with the test environment. However the reviewers refuse to provide any information about their test environment. This makes it impossible to investigating the issue.

  • Secondly, our app needs support for ARWorldTrackingConfiguration. If ARWorldTrackingConfiguration is not supported, the best we can do is show an informative error screen to the user. There is no fallback experience we can offer.

As far as I know, Apple does not provide an API to prevent the app from being installed on whatever device out there that do not support ARWorldTrackingConfiguration (we already list ARKit in the device dependencies). We've done the work to make sure the unsupported device experience is easy to understand and looks good.

I have tried to explain all these points to the reviewer without success and basically with no feedback from them. What should my next steps be? File an appeal? Submit a video of the app in action and that tries to explain all this?
I'm not sure your assumption about what triggered the completeness rejection is actionable. That might not be the reason at all. I suggest you contact support/review and request a phone call to get to the bottom of the issue.

In the mean time, you might want to take a quick lap around the HIGs on handling and building for AR store apps. Point is don't get creative...

2wit:

Important
All ARKit configurations require an iOS device with an A9 or later processor. If your app otherwise supports other devices and offers augmented reality as a secondary feature, use this property to determine whether to offer AR-based features to the user. 
If your app requires ARKit for its core functionality, use the arkit key in the UIRequiredDeviceCapabilities section of your app's Info.plist to make your app available only on devices that support ARKit.


Pulling that thread against your 'relies on' statement (nothing 'secondary' about that claim), to me, means your ARKit-centric app , with correctly added key/device requirement should simply not run on devices that don't comply, meaning there would be no 'work to be done' for checks/warnings/errors. Something is wrong up front if unsupported users are allowed into that end of the pool...

You don't share the exact rejection, so...all conjecture on my part, but as it stands, I think until you do whatever is necessary to restrict your app accordingly up front, review will continue with their talk-to-the-virtual-hand response.

Good luck.
The explanation provided for the 2.1 rejection is that the app shows a "device not supported" message in one of their tests (they provided me with a screenshot of this message but no details on the test hardware or test procedure). This error is expected if the app is run on a device which lacks support for ARKit's world tracking capability. However I cannot figure out which real world hardware this would be.

Additionally, the app does include ARKit in its Info.plist required capabilities:

Code Block
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
<string>arkit</string>
<string>metal</string>
</array>


My only speculation is that this field is somehow not being observed (at least during testing) or that there is some class of ARKit enabled devices that do not support world tracking.

I think I need to file an appeal so that I can hopefully explain why this app requires AR. There has been very limited communication on the rejections and on my followups on them, which leaves me only able to speculate.

The alternative is to implement a terribly broken experience for the mysterious devices out there which not support world tracking. However I am very much of the opinion that it is better to show users on unsupported devices an easy to understand error message, rather than delivering an experience which lacks all of cool AR features the app advertises. We already had to build a degraded experience for devices that lack a TrueDepth camera. Once you take away basic AR world tracking, the app doesn't even make sense anymore.
AR App rejected for showing error screen about device not supporting AR
 
 
Q