Verifying Device Support and User Permission

Check whether your app can use ARKit and respect user privacy at runtime.


ARKit requires iOS 11.0 or later and an iOS device with an A9 or later processor. Some ARKit features require later iOS versions or specific devices. ARKit also uses a device camera, so you need to configure iOS privacy controls so the user can permit camera access for your app.

How to handle device compatibility support depends on how your app uses ARKit:

  • If the basic functionality of your app requires AR (using the back camera): Add the arkit key in the UIRequiredDeviceCapabilities section of your app's Info.plist file. Using this key makes your app available only to ARKit-compatible devices.

  • If augmented reality is a secondary feature of your app: Check for whether the current device supports the AR configuration you want to use by testing the isSupported property of the appropriate ARConfiguration subclass.

  • If your app uses face-tracking AR: Face tracking requires the front-facing TrueDepth camera on iPhone X. Your app remains available on other devices, so you must test the ARFaceTrackingConfiguration.isSupported property to determine face-tracking support on the current device.

Handle User Consent and Privacy

For your app to use ARKit, the user must explicitly grant your app permission for camera access. ARKit automatically asks the user for permission the first time your app runs an AR session.

iOS requires your app to provide a static message to be displayed when the system asks for camera or microphone permission. Your app's Info.plist file must include the NSCameraUsageDescription key. For that key, provide text that explains why your app needs camera access so that the user can feel confident granting permission to your app.

If your app uses ARFaceTrackingConfiguration, ARKit provides your app with personal facial information. If you use ARKit face tracking features, your app must include a privacy policy describing to users how you intend to use face tracking and face data. For details, see the Apple Developer Program License Agreement.

See Also


Choosing Which Camera Feed to Augment

Augment the user's environment through either the front or back camera.

Managing Session Lifecycle and Tracking Quality

Keep the user informed on the current session state and recover from interruptions.

class ARSession

The main object you use to control an AR experience.

class ARConfiguration

An object that defines the particular ARKit features enabled in your session at a given time.

class ARAnchor

A position and orientation of something of interest in the physical environment.