Property List

Information Property List

A bundle resource containing key-value pairs that identify and configure an app.

Discussion

The information property list is a bundle resource containing key-value pairs that identify an app or bundle and the document types it supports, as well as configure technologies, display information to users, and specify the launch environment.

Create the Information Property List

Xcode creates the information property list file when you create a project from a template (as described in Create an Xcode project). The name of the information property list file is Info.plist; in older projects, the file contains Info.plist. The file name is case-sensitive and must begin with a capital letter I.

There is one information property list for each target in the project folder. For watchOS apps, there is a separate information project list for the watchOS and iOS targets.

Configure the Target

You can set the required keys when you create the project, or you can set them later by configuring your project or target in Xcode. For example, you can enter the bundle ID, version number, and build string, then choose a development team for code signing. For more information, go to Prepare for app distribution and Add a capability to a target.

Edit the Information Property List

If necessary, you can edit the information property list directly in Xcode using the property list or source editor. For more information, go to Edit the information property list and Edit property lists.

Localize the Information Property List

Many strings in the information property list are human-readable strings displayed to the user, so you should localize the file. For example, localize CFBundleDisplayName, CFBundleName, and all of the UsageDescription keys. For more information, go to Make a resource localizable.

Add Platform- and Device-Specific Keys

You can add platform- or device-specific keys to the information property list file by using this syntax for the key:

[key name]-[platform]~[device]

In this syntax, platform and device are optional qualifiers that restrict the value for the key to the platform or device. For example, use the UISupportedInterfaceOrientations~ipad key to set different orientation values for iPad devices.

The possible values for platform are:

  • iphoneos — iOS targets

  • macos — macOS targets

The possible values for device are:

  • iphone — iPhone devices

  • ipod — iPod touch devices

  • ipad — iPad devices

Topics

AppKit

property list key APFiles

Describes the files or directories the app installs on the system.

Name: Installation files
property list key APInstallerURL

The base path to the files or directories the app installs.

Name: Installation directory base file URL
property list key ATSApplicationFontsPath

The location of a font file or directory of fonts in the bundle’s Resources folder.

Name: Application fonts resource path
property list key NSDockTilePlugIn

The name of the app's plug-in bundle.

Name: Dock Tile plugin path
property list key NSServices

The services provided by an app.

Name: Services
property list key NSSupportsSuddenTermination

A Boolean value indicating whether the system may terminate the app to log out or shut down more quickly.

Name: Application can be killed immediately after launch
property list key TICapsLockLanguageSwitchCapable

A Boolean value that enables the Caps Lock key to switch between Latin and non-Latin input sources.

Beta

AVFoundation

property list key NSCameraUsageDescription

A message that tells the user why the app is requesting access to the device’s camera.

Name: Privacy - Camera Usage Description
property list key NSMicrophoneUsageDescription

A message that tells the user why the app is requesting access to the device’s microphone.

Name: Privacy - Microphone Usage Description

Contacts

property list key NSContactsUsageDescription

A message that tells the user why the app is requesting access to the user’s contacts.

Name: Privacy - Contacts Usage Description

Core Foundation

property list key CFAppleHelpAnchor

The name of the bundle’s HTML help file.

Name: Help file
property list key CFBundleAllowMixedLocalizations

A Boolean value that indicates whether the bundle supports the retrieval of localized strings from frameworks.

Name: Localized resources can be mixed
property list key CFBundleDevelopmentRegion

The default language and region for the bundle, as a language ID.

Name: Localization native development region
property list key CFBundleDisplayName

The user-visible name for the bundle; used by Siri and visible on the iOS Home screen.

Name: Bundle display name
property list key CFBundleDocumentTypes

The document types supported by the bundle.

Name: Document types
property list key CFBundleExecutable

The name of the bundle’s executable file.

Name: Executable file
property list key CFBundleHelpBookFolder

The name of the folder containing the bundle’s help files.

Name: Help Book directory name
property list key CFBundleHelpBookName

The name of the help file that will be opened in Help Viewer.

Name: Help Book identifier
property list key CFBundleIconFile

The file containing the bundle's icon.

Name: Icon file
property list key CFBundleIconFiles

The names of the bundle’s icon image files.

Name: Icon files
property list key CFBundleIconName

The name of the asset that represents the app icon.

Name: Icon Name
property list key CFBundleIcons

Information about all of the icons used by the app.

Name: Icon files (iOS 5)
property list key CFBundleAlternateIcons

Information about alternate app icons that can be used by the app.

property list key CFBundleIdentifier

A unique identifier for a bundle.

Required.

Name: Bundle identifier
property list key CFBundleInfoDictionaryVersion

The current version of the Information Property List structure.

Name: InfoDictionary version
property list key CFBundleLocalizations

The localizations handled manually by your app.

Name: Localizations
property list key CFBundleName

A user-visible short name for the bundle.

Name: Bundle name
property list key CFBundlePackageType

The type of bundle.

Name: Bundle OS Type code
property list key CFBundleShortVersionString

The release or version number of the bundle.

Name: Bundle versions string, short
property list key CFBundleSpokenName

A replacement for the app name in text-to-speech operations.

Name: Accessibility Bundle Name
property list key CFBundleURLTypes

A list of URL schemes (http, ftp, and so on) supported by the app.

Name: URL types
property list key CFBundleVersion

The build version that identifies an iteration of the bundle.

Name: Bundle version
property list key CFPlugInDynamicRegisterFunction

The function to use when dynamically registering a plug-in.

Name: Plug-in dynamic registration function name
property list key CFPlugInDynamicRegistration

A Boolean value indicating whether the host loads this plug-in.

Name: Plug-in should be registered dynamically
property list key CFPlugInFactories

The interfaces supported by the plug-in for static registration.

Name: Plug-in factory interfaces
property list key CFPlugInTypes

One or more groups of interfaces supported by the plug-in for static registration.

Name: Plug-in types
property list key CFPlugInUnloadFunction

The name of the function to call to unload the plug-in code from memory.

Name: Plug-in unload function name
property list key CSResourcesFileMapped

A Boolean value indicating whether the app's resources files should be mapped into memory.

Name: Resources should be file-mapped

Core Services

property list key LSApplicationCategoryType

The category that best describes your app for the App Store.

Name: Application Category
property list key LSBackgroundOnly

A Boolean value indicating whether the app runs only in the background.

Name: Application is background only
property list key LSBundleContainsCoreMLmlmodelc

A Boolean value indicating whether the app contains a Core ML model to optimize loading the model.

Name: Bundle contains CoreML models
property list key LSEnvironment

Environment variables to set before launching the app.

Name: Environment variables
property list key LSExecutableArchitectures

The architectures that the app supports.

Name: Executable architectures
property list key LSFileQuarantineEnabled

A Boolean value indicating whether the files this app creates are quarantined by default.

Name: File quarantine enabled
property list key LSGetAppDiedEvents

A Boolean value indicating whether the app is notified when a child process dies.

Name: Application should get App Died events
property list key LSMinimumSystemVersion

The minimum operating system version required for the app to run.

Name: Minimum system version
property list key LSMinimumSystemVersionByArchitecture

The minimum version of macOS required for the app to run on a set of architectures.

Name: Minimum system versions, per-architecture
property list key LSMultipleInstancesProhibited

A Boolean value indicating whether more than one user can launch the app simultaneously.

Name: Application prohibits multiple instances
property list key LSRequiresIPhoneOS

A Boolean value indicating whether the app must run in iOS.

Name: Application requires iPhone environment
property list key LSRequiresNativeExecution

A Boolean value indicating whether to launch the app using the sub-binary for the current architecture.

Name: Application requires native environment
property list key LSSupportsOpeningDocumentsInPlace

A Boolean value indicating whether the app may open the original document from a file provider, rather than a copy of the document.

Name: Supports opening documents in place
property list key LSUIElement

A Boolean value indicating whether the app is an agent app that runs in the background and doesn't appear in the Dock.

Name: Application is agent (UIElement)
property list key LSUIPresentationMode

The initial user-interface mode for the app.

Name: Application UI Presentation Mode
property list key UTExportedTypeDeclarations

The uniform type identifiers owned and exported by the app.

Name: Exported Type UTIs
property list key UTImportedTypeDeclarations

The uniform type identifiers inherently supported, but not owned, by the app.

Name: Imported Type UTIs
property list key MinimumOSVersion

The miminimum operating system version required for the app to run on iOS, tvOS, and watchOS.

CoreBluetooth

property list key NSBluetoothPeripheralUsageDescription

A message that tells the user why the app is requesting the ability to connect to Bluetooth peripherals.

Name: Privacy - Bluetooth Peripheral Usage Description
property list key NSBluetoothAlwaysUsageDescription

A message that tells the user why the app needs access to Bluetooth.

Name: Privacy - Bluetooth Always Usage Description
Beta

CoreData

property list key NSPersistentStoreTypeKey

The Core Data persistent store type associated with a document type.

Name: Core Data persistent store type

CoreLocation

property list key NSLocationAlwaysAndWhenInUseUsageDescription

A message that tells the user why the app is requesting access to the user’s location information at all times.

Name: Privacy - Location Always and When In Use Usage Description
property list key NSLocationAlwaysUsageDescription

A message that tells the user why the app is requesting access to the user's location at all times.

Name: Privacy - Location Always Usage Description
Deprecated
property list key NSLocationUsageDescription

A message that tells the user why the app is requesting access to the user’s location information.

Name: Privacy - Location Usage Description
property list key NSLocationWhenInUseUsageDescription

A message that tells the user why the app is requesting access to the user’s location information while the app is running in the foreground.

Name: Privacy - Location When In Use Usage Description

CoreMotion

property list key NSMotionUsageDescription

A message that tells the user why the app is requesting access to the device’s accelerometer.

Name: Privacy - Motion Usage Description

CoreNFC

property list key NFCReaderUsageDescription

A message that tells the user why the app is requesting access to the device’s NFC hardware.

Name: Privacy - NFC Scan Usage Description
property list key com.apple.developer.nfc.readersession.felica.systemcodes

A list of FeliCa system codes that the app supports.

Name: ISO18092 system codes for NFC Tag Reader Session
Beta
property list key com.apple.developer.nfc.readersession.iso7816.select-identifiers

A list of application identifiers that the app supports.

Name: ISO7816 application identifiers for NFC Tag Reader Session
Beta

EventKit

property list key NSCalendarsUsageDescription

A message that tells the user why the app is requesting access to the user’s calendar data.

Name: Privacy - Calendars Usage Description
property list key NSRemindersUsageDescription

A message that tells the user why the app is requesting access to the user’s reminders.

Name: Privacy - Reminders Usage Description

Foundation

property list key NSAppTransportSecurity

A description of changes made to the default security for HTTP connections.

Name: App Transport Security Settings
property list key NSAppleScriptEnabled

A Boolean value indicating whether AppleScript is enabled.

Name: Scriptable
property list key NSExtension

The properties of an app extension.

property list key NSHighResolutionCapable

A Boolean value indicating whether the Cocoa app supports high-resolution displays.

Name: High Resolution Capable
property list key NSHumanReadableCopyright

A human-readable copyright notice for the bundle.

Name: Copyright (human-readable)
property list key NSJavaRoot

The root directory for the app’s Java class files.

Name: Java root directory
property list key NSMainNibFile

The name of an app’s main user interface file.

Name: Main nib file base name
property list key NSMainStoryboardFile

The name of an app's storyboard resource file.

Name: Main storyboard file base name
property list key NSPrincipalClass

The name of the bundle’s main executable class.

Name: Principal class
property list key NSSupportsAutomaticGraphicsSwitching

A Boolean value indicating whether an OpenGL app may utilize the integrated GPU.

Name: Supports Automatic Graphics Switching
property list key NSSupportsPurgeableLocalStorage

A Boolean value indicating whether the app continues working if the system purges the local storage.

property list key NSDesktopFolderUsageDescription

A message that tells the user why the app needs access to the user’s Desktop folder.

Name: Privacy - Desktop Folder Usage Description
Beta
property list key NSDocumentsFolderUsageDescription

A message that tells the user why the app needs access to the user’s Documents folder.

Name: Privacy - Documents Folder Usage Description
Beta
property list key NSDownloadsFolderUsageDescription

A message that tells the user why the app needs access to the user’s Downloads folder.

Name: Privacy - Downloads Folder Usage Description
Beta
property list key NSNetworkVolumesUsageDescription

A message that tells the user why the app needs access to files on a network volume.

Name: Privacy - Network Volumes Usage Description
Beta
property list key NSRemovableVolumesUsageDescription

A message that tells the user why the app needs access to files on a removable volume.

Name: Privacy - Removable Volumes Usage Description
Beta
property list key NSFileProviderPresenceUsageDescription

A message that tells the user why the app needs to be informed when other apps access files that it manages.

Name: Privacy - File Provider Presence Usage Description
Beta
property list key NSFileProviderDomainUsageDescription

A message that tells the user why the app needs access to files managed by a file provider.

Name: Privacy - Access to a File Provider Domain Usage Description
Beta

GameController

property list key GCSupportedGameControllers

The types of game controllers allowed or required by the app.

property list key GCSupportsControllerUserInteraction

A Boolean value indicating whether the app supports a game controller.

Name: Supports Controller User Interaction
property list key GCSupportsMultipleMicroGamepads

A Boolean value indicating whether the physical Apple TV Remote and the Apple TV Remote app operate as separate game controllers.

GameKit

property list key GKGameCenterBadgingDisabled

A Boolean value indicating whether badges can be added to a turn-based app icon.

property list key GKShowChallengeBanners

A Boolean value indicating whether challenge banners can be displayed within an app.

HealthKit

property list key NSHealthClinicalHealthRecordsShareUsageDescription

A message to the user that explains why the app requested permission to read clinical records.

Name: Privacy - Health Records Usage Description
property list key NSHealthShareUsageDescription

A message to the user that explains why the app requested permission to read samples from the HealthKit store.

Name: Privacy - Health Share Usage Description
property list key NSHealthUpdateUsageDescription

A message to the user that explains why the app requested permission to save samples to the HealthKit store.

Name: Privacy - Health Update Usage Description
property list key NSHealthRequiredReadAuthorizationTypeIdentifiers

The clinical record data types that your app must get permission to read.

HomeKit

property list key NSHomeKitUsageDescription

A message that tells the user why the app is requesting access to the user’s HomeKit configuration data.

Name: Privacy - HomeKit Usage Description

Intents

property list key NSSiriUsageDescription

A message that tells the user why the app is requesting to send user data to Siri.

Name: Privacy - Siri Usage Description

LocalAuthentication

property list key NSFaceIDUsageDescription

A message that tells the user why the app is requesting the ability to authenticate with Face ID.

Name: Privacy - Face ID Usage Description

MapKit

property list key MKDirectionsApplicationSupportedModes

The modes of transportation for which the app is capable of giving directions.

Name: Maps routing app supported modes

MediaPlayer

property list key NSAppleMusicUsageDescription

A message that tells the user why the app is requesting access to the user’s media library.

Name: Privacy - Media Library Usage Description

Photos

property list key NSPhotoLibraryAddUsageDescription

A message that tells the user why the app is requesting write-only access to the user’s photo library.

Name: Privacy - Photo Library Additions Usage Description
property list key NSPhotoLibraryUsageDescription

A message that tells the user why the app is requesting access to the user’s photo library.

Name: Privacy - Photo Library Usage Description

PreferencePanes

property list key NSPrefPaneIconFile

The name of an image file used to represent a preference pane in the System Preferences app.

Name: Preference Pane icon file
property list key NSPrefPaneIconLabel

The name of a preference pane displayed beneath the preference pane icon in the System Preferences app.

Name: Preference Pane icon label

QuickLook

property list key QLNeedsToBeRunInMainThread

A Boolean value indicating whether a Quick Look app's generator can be run in threads other than the main thread.

Name: Quick Look needs to be run in main thread
property list key QLPreviewHeight

A hint at the height, in points, of a Quick Look app's previews.

Name: Quick Look preview height
property list key QLPreviewWidth

A hint at the width, in points, of a Quick Look app's previews.

Name: Quick Look preview width
property list key QLSupportsConcurrentRequests

A Boolean value indicating whether a Quick Look app's generator can handle concurrent thumbnail and preview requests.

Name: Quick Look supports concurrent requests
property list key QLThumbnailMinimumSize

The minimum size, in points, along one dimension of thumbnails for a Quick Look app's generator.

Name: Quick Look thumbnail minimum size

Security

property list key ITSAppUsesNonExemptEncryption

A Boolean value indicating whether the app uses encryption.

Name: App Uses Non-Exempt Encryption
property list key ITSEncryptionExportComplianceCode

The export compliance code provided by App Store Connect for apps that require it.

Name: App Encryption Export Compliance Code
property list key NSAppleEventsUsageDescription

A message that tells the user why the app is requesting the ability to send Apple events.

Name: Privacy - AppleEvents Sending Usage Description
property list key NSSystemAdministrationUsageDescription

A message in macOS that tells the user why the app is requesting to manipulate the system configuration.

Name: Privacy - System Administration Usage Description

ServiceManagement

property list key SMAuthorizedClients

The Service Management clients authorized to add and remove tools.

Name: Clients allowed to add and remove tool
property list key SMPrivilegedExecutables

The Service Management tools owned by the app.

Name: Tools owned after installation

Speech

property list key NSSpeechRecognitionUsageDescription

A message that tells the user why the app is requesting to send user data to Apple’s speech recognition servers.

Name: Privacy - Speech Recognition Usage Description

TVUIKit

property list key NSVideoSubscriberAccountUsageDescription

A message that tells the user why the app is requesting access to the user’s TV provider account.

Name: Privacy - Video Subscriber Account Usage Description

UIKit

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.

Deprecated
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 UIRequiredDeviceCapabilities

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

Name: Required device capabilities
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
property list key UIApplicationSceneManifest

The information about the app's scene-based life-cycle support.

Name: Application Scene Manifest
Beta

WatchKit

property list key CLKComplicationPrincipalClass

The name of the class that implements the complication data source protocol.

Name: ClockKit Complication - Principal Class
property list key CLKComplicationSupportedFamilies

The complication families for which the app can provide data.

Name: ClockKit Complication - Supported Families
property list key PUICAutoLaunchAudioOptOut

A Boolean value indicating whether a watchOS app should opt out of automatically launching when its companion iOS app starts playing audio content.

Name: Opt out of Auto-launch Audio App (Watch)
property list key WKAppBundleIdentifier

The bundle ID of the watchOS app.

property list key WKBackgroundModes

The services a Watch app provides that require it to continue running while in the background.

Name: Required background modes (Watch)
property list key WKCompanionAppBundleIdentifier

The bundle ID of the watchOS app’s companion iOS app.

property list key WKExtensionDelegateClassName

The name of your watchOS app’s extension delegate.

property list key WKWatchKitApp

A Boolean value that indicates whether the bundle is a watchOS app.

property list key WKRunsIndependentlyOfCompanionApp
Name: App can run independently of companion iPhone app
Beta
property list key WKWatchOnly
Name: App is only available as a standalone watchOS app
Beta

Authentication Services

property list key ASWebAuthenticationSessionWebBrowserSupportCapabilities

A collection of keys that a browser app uses to declare its ability to handle authentication requests from other apps.

Beta

BackgroundTasks

property list key BGTaskSchedulerPermittedIdentifiers

An array of strings containing developer-specified task identifiers in reverse URL notation.

Name: Permitted background task scheduler identifiers
Beta

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software