Search code examples
iosarkitappstore-approvalinfo.plist

Access to ARKit – iOS App Rejected Guideline 2.5.1


Our iOS app rejected with following reason.

Guideline 2.5.1 - Performance - Software Requirements During review, we were prompted to provide consent to access the ARKit. However, we were not able to locate any features in your app that use the ARKit.

Next Steps

If your app does not include any features that use the ARKit, please remove access to the ARKit from your app.

If your app does include features that use the ARKit, please reply to this message in Resolution Center to provide information on how to locate them.

We aren't using any ARKit framework in our app. We also checked whether any dependencies are using ARKit. But, none of them add ARKit. So, I can't figure out how ARKit consent is coming up during review.

FYI, We are using front/back camera for taking profile picture of the user. Also, we set

  • 'NSCameraUsageDescription',
  • 'UIRequiredDeviceCapabilities' to 'armv7',
  • 'NSFaceIDUsageDescription',
  • 'NSLocationAlwaysAndWhenInUseUsageDescription',
  • 'NSMicrophoneUsageDescription'

etc in info.plist for permission text.

Any kind of help will be appreciated.

Thanks


Solution

  • ①. It seems you used ARKit template when created application. Try to use arm64 value instead of armv7, and delete arkit value if you have this one in info.plist.

    Take into consideration these two values are compulsory when using ARKit.

    <key>UIRequiredDeviceCapabilities</key>
        <array>
            <string>armv7</string>
            <string>arkit</string>
        </array>
    

    ②. Check if there are any guard statement in AppDelegate.swift file like this:

    guard ARWorldTrackingConfiguration.isSupported else {
        fatalError("ARKit is not available on this device.")
    }
    

    ③. If you're 100% sure your app doesn't have any ARKit features just contact AppStore team to discuss the issue.


    P.S.

    @MilanKamilya suggested you may potentially use any CocoaPod with dependency on ARKit. To find out whether you have such a dependency or not, use in Terminal the following command executed from macOS root directory (works in both bash and zsh):

    grep -r ARKit ./