<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.0.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BundleResources",
  "identifier" : "/documentation/BundleResources/Information-Property-List",
  "metadataVersion" : "0.1.0",
  "role" : "Property List",
  "symbol" : {
    "kind" : "Property List",
    "modules" : [
      "Bundle Resources"
    ],
    "preciseIdentifier" : "plist:Information_Property_List"
  },
  "title" : "Information Property List"
}
-->

# Information Property List

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

## Discussion

Bundles, which represent executables of different kinds, contain an information property list file. This collection of key-value pairs specifies how the system interprets the associated bundle. Some key-value pairs characterize the bundle itself, and others configure the app, framework, or other entity that the bundle represents. Some keys are required, and others are specific to particular features of the executable.

The information property list file always has the name `Info.plist`. The file name is case-sensitive and must begin with a capital letter `I`. Its location within the bundle depends on both the bundle type and the platform. For example, iOS app bundles store the file in the bundle’s root directory, whereas macOS app bundles place the `Info.plist` file in the `Contents` directory.

You typically rely on Xcode to create the information property list file for your apps and other executable targets, as described in [Managing your app’s information property list values](/documentation/BundleResources/managing-your-app-s-information-property-list).
When you let Xcode prepare your bundle’s information property list, you don’t need to edit the file directly.
For information on manually editing property list files, see <doc://com.apple.documentation/documentation/Xcode/editing-property-list-files>.

To access values in an information property list programmatically, you use an instance of the <doc://com.apple.documentation/documentation/Foundation/Bundle> class, which represents a bundle on disk. You can get the value for a few common keys by accessing properties of the bundle instance. For example, the <doc://com.apple.documentation/documentation/Foundation/Bundle/bundleIdentifier> property contains the value associated with the [`CFBundleIdentifier`](/documentation/BundleResources/Information-Property-List/CFBundleIdentifier) key. You can obtain the value for an arbitrary key using the <doc://com.apple.documentation/documentation/Foundation/Bundle/object(forInfoDictionaryKey:)> method.

## Topics

### Essentials

[Managing your app’s information property list values](/documentation/BundleResources/managing-your-app-s-information-property-list)

Customize the information property list values for your app using Xcode.

### Core settings

[Bundle configuration](/documentation/BundleResources/bundle-configuration)

Define basic characteristics of a bundle, like its name, type, and version.

[User interface](/documentation/BundleResources/user-interface)

Configure an app’s scenes, storyboards, icons, fonts, and other user interface elements.

[App execution](/documentation/BundleResources/app-execution)

Control app launch, execution, and termination.

### Services

[Protected resources](/documentation/BundleResources/protected-resources)

Control an app’s access to protected system services and user data.

[Data and storage](/documentation/BundleResources/data-and-storage)

Regulate documents, URLs, and other kinds of data movement and storage.

[App services](/documentation/BundleResources/app-services)

Configure services provided by the app, like support for giving directions or using game controllers.

[Kernel and drivers](/documentation/BundleResources/kernel-and-drivers)

Configure device drivers provided by the app.

### AVFoundation

[`NSAlwaysAllowMicrophoneModeControl`](/documentation/BundleResources/Information-Property-List/NSAlwaysAllowMicrophoneModeControl)

A Boolean value that indicates if a person can configure a microphone mode regardless of whether the microphone is in an active state.

### AVSystemRouting

[`MDESupportedProtocols`](/documentation/BundleResources/Information-Property-List/MDESupportedProtocols)

A dictionary that declares which media sharing extension protocols an app supports.

[`MDESupportsUniversalURLPlayback`](/documentation/BundleResources/Information-Property-List/MDESupportsUniversalURLPlayback)

A Boolean value that indicates whether an app supports URL-based playback via a media device extension.

### Vision

[`ApprovedStreamingEndpoints`](/documentation/BundleResources/Information-Property-List/ApprovedStreamingEndpoints)

A dictionary of streaming endpoints in visionOS to which Foveated Streaming clients may connect.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)