Property List Key


The device-related features that the app requires to run.


Required device capabilities
array of strings

Possible Values


The presence of accelerometers. Use the Core Motion framework to receive accelerometer events. You don’t need to include this value if your app detects only device orientation changes.


Support for ARKit.


Compilation for the armv7 instruction set, or as a 32/64-bit universal app.


Compilation for the arm64 instruction set. Include this key for all 64-bit apps and embedded bundles, like extensions and frameworks.


Autofocus capabilities in the device’s still camera. You might need to include this value if your app supports macro photography or requires sharper images to perform certain image-processing tasks.


Bluetooth low-energy hardware.


A camera flash, controlled by the cameraFlashMode property of a UIImagePickerController instance.


A forward-facing camera, selected with the cameraDevice property of a UIImagePickerController instance.


Access to the Game Center service. Enable the Game Center capability in Xcode to add this value to your app.


GPS (or AGPS) hardware used to track locations. If you include this value, you should also include the location-services value. Require GPS only if your app needs location data more accurate than the cellular or Wi-Fi radios provide.


A gyroscope. Use the Core Motion framework to retrieve information from gyroscope hardware.


Support for HealthKit.


Access to the device’s current location using the Core Location framework. This value refers to the general location services feature. If you specifically need GPS-level accuracy, also include the gps feature.


Magnetometer hardware. Apps use this hardware to receive heading-related events through the Core Location framework.


Support for graphics processing with Metal.


The built-in microphone or accessories that provide a microphone.


Near Field Communication (NFC) tag detection and access to messages that contain NFC Data Exchange Format data. Use the Core NFC framework to detect and read NFC tags.


The OpenGL ES 1.1 interface.


The OpenGL ES 2.0 interface.


The OpenGL ES 3.0 interface.


Peer-to-peer connectivity over a Bluetooth network.


The Messages app. You might require this feature if your app opens URLs with the sms scheme.


A camera on the device. Use the UIImagePickerController interface to capture images from the device’s still camera.


The Phone app. You might require this feature if your app opens URLs with the tel scheme.


A camera with video capabilities on the device. Use the UIImagePickerController interface to capture video from the device’s camera.


Networking features related to Wi-Fi access.


The App Store prevents customers from installing an app on a device that doesn’t support the required capabilities for that app. Use this key to declare the capabilities your app requires. For a list of the features supported by different devices, see Required Device Capabilities.

You typically use an array for the key’s associated value. The presence in that array of any of the possible values listed above indicates that the app requires the corresponding feature. Omit a value to indicate that the feature isn’t required, but can be present.

Alternatively, you can use a dictionary as the associated value for the UIRequiredDeviceCapabilities key. In that case, use the values above as the dictionary’s keys, each with an associated Boolean value. Set the value to true to require the corresponding feature. Set the value to false to indicate that the feature must not be present on the device. Omit the feature from the dictionary to indicate that it is neither required nor disallowed.

Specify only the features that your app absolutely requires. If your app can accommodate missing features by avoiding the code paths that use those features, don’t include the corresponding key.

See Also


property list key UIAppFonts

App-specific font files located in the bundle and that the system loads at runtime.

Name: Fonts provided by application
property list key UIAppSupportsHDR

A Boolean value indicating whether the app supports HDR mode on Apple TV 4K.

Name: Supports HDR color mode
property list key UIApplicationExitsOnSuspend

A Boolean value indicating whether the app terminates, rather than moves to the background, when the app quits.

Name: Application does not run in background
property list key UIApplicationShortcutWidget

The bundle ID of the widget that's available as a Home screen quick action in apps that have more than one widget.

Name: Home Screen Widget
property list key UIBackgroundModes

Services provided by an app that require it to run in the background.

Name: Required background modes
property list key UIFileSharingEnabled

A Boolean value indicating whether the app shares files through iTunes.

Name: Application supports iTunes file sharing
property list key UIInterfaceOrientation

The initial orientation of the app’s user interface.

Name: Initial interface orientation
property list key UILaunchImages

A dictionary containing information about launch images.

property list key UILaunchStoryboardName

The filename of the storyboard from which to generate the app’s launch image.

Name: Launch screen interface file base name
property list key UIMainStoryboardFile

The name of the app’s main storyboard file.

Name: Main storyboard file base name
property list key UIPrerenderedIcon

A Boolean value indicating whether the app’s icon already contains a shine effect.

Name: Icon already includes gloss effects
property list key UIRequiresPersistentWiFi

A Boolean value indicating whether the app requires a Wi-Fi connection.

Name: Application uses Wi-Fi
property list key UIStatusBarHidden

A Boolean value indicating whether the status bar is initially hidden when the app launches.

Name: Status bar is initially hidden
property list key UIStatusBarStyle

The style of the status bar as the app launches.

Name: Status bar style
property list key UIStatusBarTintParameters

The status bar tint.

Name: Status bar tinting parameters
property list key UISupportedExternalAccessoryProtocols

The protocols that the app supports and can use to communicate with external accessory hardware.

Name: Supported external accessory protocols
property list key UISupportedInterfaceOrientations

The interface orientations the app supports.

Name: Supported interface orientations
property list key UISupportsDocumentBrowser

A Boolean value indicating whether the app is a document-based app.

Name: Supports Document Browser
property list key UIUserInterfaceStyle

The user interface style for the app.

Name: User Interface Style
property list key UIViewControllerBasedStatusBarAppearance

A Boolean value indicating whether the status bar appearance is based on the style preferred for the current view controller.

Name: View controller-based status bar appearance
property list key UIViewEdgeAntialiasing

A Boolean value indicating whether Core Animation layers use antialiasing when drawing a layer that's not aligned to pixel boundaries.

Name: Renders with edge antialiasing
property list key UIViewGroupOpacity

A Boolean value indicating whether Core Animation sublayers inherit the opacity of their superlayer.

Name: Renders with group opacity
property list key UIWhitePointAdaptivityStyle

The app’s white point adaptivity style, enabled on devices with True Tone displays.

Name: White Point Adaptivity Style