< Previous PageNext Page > Hide TOC

Property List Key Reference

The following sections contain detailed information about the usage and behavior of property-list keys available for use in an information property list file.

Contents:

Key Summary
Key Descriptions


Key Summary

Table 1 contains an alphabetical list of the keys you can use in an information property list file, along with a brief description and the platforms to which they apply (Mac OS X or iPhone). For detailed descriptions of these keys, see “Key Descriptions .”

Table 1  Summary of standard keys

Key

Summary

Platforms

APInstallerURL

A URL-based path to the files you want to install. See “APInstallerURL” for details.

Mac OS X

APFiles

An array of dictionaries describing the files or directories that can be installed. See “APFiles” for details.

Mac OS X

ATSApplicationFontsPath

The path to a single font file or directory of font files in the bundle’s Resources directory. See “ATSApplicationFontsPath” for details.

Mac OS X

CFAppleHelpAnchor

The bundle’s initial HTML help file. See “CFAppleHelpAnchor” for details.

Mac OS X

CFBundleAllowMixedLocalizations

Used by Foundation tools to retrieve localized resources from frameworks. See “CFBundleAllowMixedLocalizations” for details.

Mac OS X, iPhone OS

CFBundleDevelopmentRegion

The native region for the bundle. Usually corresponds to the native language of the author. See “CFBundleDevelopmentRegion” for details.

Mac OS X, iPhone OS

CFBundleDisplayName

The actual name of the bundle. See “CFBundleDisplayName” for details.

Mac OS X, iPhone OS

CFBundleDocumentTypes

An array of dictionaries describing the document types supported by the bundle. See “CFBundleDocumentTypes” for details.

Mac OS X

CFBundleExecutable

Name of the bundle executable file. See “CFBundleExecutable” for details.

Mac OS X, iPhone OS

CFBundleGetInfoString

Brief description of the bundle. See “CFBundleGetInfoString” for details.

Mac OS X

CFBundleHelpBookFolder

The name of the folder containing the bundle’s help files. See “CFBundleHelpBookFolder” for details.

Mac OS X

CFBundleHelpBookName

The name of the help file to display when Help Viewer is launched for the bundle. See “CFBundleHelpBookName” for details.

Mac OS X

CFBundleIconFile

File name for icon image file. See “CFBundleIconFile” for details.

Mac OS X, iPhone OS

CFBundleIdentifier

An identifier string that specifies the application type of the bundle. This string should be a uniform type identifier (UTI), for example com.mycompany.MyApp. See “CFBundleIdentifier” for details.

Mac OS X, iPhone OS

CFBundleInfoDictionaryVersion

Version information for the Info.plist format. See “CFBundleInfoDictionaryVersion” for details.

Mac OS X, iPhone OS

CFBundleLocalizations

Contains localization information for an application that handles its own localized resources. See “CFBundleLocalizations” for details.

Mac OS X, iPhone OS

CFBundleName

The short display name of the bundle. See “CFBundleName” for details.

Mac OS X, iPhone OS

CFBundlePackageType

The four-letter code identifying the bundle type. See “CFBundlePackageType” for details.

Mac OS X

CFBundleShortVersionString

The release-version-number string for the bundle. See “CFBundleShortVersionString” for details.

Mac OS X, iPhone OS

CFBundleSignature

The four-letter code identifying the bundle creator. See “CFBundleSignature” for details.

Mac OS X

CFBundleURLTypes

An array of dictionaries describing the URL schemes supported by the bundle. See “CFBundleURLTypes” for details.

Mac OS X, iPhone OS

CFBundleVersion

The build-version-number string for the bundle. See “CFBundleVersion” for details.

Mac OS X, iPhone OS

CFPlugInDynamicRegistration

If YES, register the plug-in dynamically; otherwise, register it statically. See “CFPlugInDynamicRegistration” for details.

Mac OS X

CFPlugInDynamicRegistrationFunction

The name of the custom, dynamic registration function. See “CFPlugInDynamicRegisterFunction” for details.

Mac OS X

CFPlugInFactories

For static registration, this dictionary contains a list of UUIDs with matching function names. See “CFPlugInFactories” for details.

Mac OS X

CFPlugInTypes

For static registration, the list of UUIDs “CFPlugInTypes” for details.

Mac OS X

CFPlugInUnloadFunction

The name of the custom function to call when it’s time to unload the plug-in code from memory. See “CFPlugInUnloadFunction” for details.

Mac OS X

CSResourcesFileMapped

If true, Core Services routines map the bundle’s resource files into memory instead of reading them. See “CSResourcesFileMapped” for details.

Mac OS X

LSArchitecturePriority

Contains an array of strings identifying the supported code architectures and their preferred execution priority. See “LSArchitecturePriority” for details.

Mac OS X

LSBackgroundOnly

Specifies whether the application runs only in the background. (Mach-O applications only). See “LSBackgroundOnly” for details.

Mac OS X

LSEnvironment

Contains a list of key/value pairs, representing environment variables and their values. See “LSEnvironment” for details.

Mac OS X

LSFileQuarantineEnabled

Specifies whether the files this application creates are quarantined by default. See “LSFileQuarantineEnabled.”

Mac OS X

LSGetAppDiedEvents

Specifies whether the application is notified when a child process dies. See “LSGetAppDiedEvents” for details.

Mac OS X

LSHasLocalizedDisplayName

Specifies whether the application supports a localized display name. See “LSHasLocalizedDisplayName” for details.

Mac OS X

LSMinimumSystemVersion

Specifies the minimum version of Mac OS X required for the application to run. See “LSMinimumSystemVersion” for details.

Mac OS X

LSMinimumSystemVersionByArchitecture

Specifies the minimum version of Mac OS X required to run a given platform architecure. See “LSMinimumSystemVersionByArchitecture” for details.

Mac OS X

LSMultipleInstancesProhibited

Specifies whether one user or multiple users can launch an application simultaneously. See “LSMultipleInstancesProhibited” for details.

Mac OS X

LSRequiresIPhoneOS

Specifies whether the application is an iPhone application. See “LSRequiresIPhoneOS” for details.

Mac OS X, iPhone OS

LSRequiresNativeExecution

Specifies whether the application must run natively on Intel-based Macintosh computers, as opposed to under Rosetta emulation. See “LSRequiresNativeExecution” for details.

Mac OS X

LSUIElement

Specifies whether the application is an agent application, that is, an application that should not appear in the Dock or Force Quit window. See “LSUIElement” for details.

Mac OS X

LSUIPresentationMode

Sets the visibility of system UI elements when the application launches. See “LSUIPresentationMode” for details.

Mac OS X

LSVisibleInClassic

Specifies whether an agent application or background-only application is visible to other applications in the Classic environment. See “LSVisibleInClassic” for details.

Mac OS X

NSAppleScriptEnabled

Specifies whether AppleScript is enabled. See “NSAppleScriptEnabled” for details.

Mac OS X

NSHumanReadableCopyright

Specifies the copyright notice for the bundle. See “NSHumanReadableCopyright” for details.

Mac OS X

NSJavaNeeded

Specifies whether the program requires a running Java VM. See “NSJavaNeeded” for details.

Mac OS X

NSJavaPath

An array of paths to classes whose components are preceded by NSJavaRoot. See “NSJavaPath” for details.

Mac OS X

NSJavaRoot

The root directory containing the java classes. See “NSJavaRoot” for details.

Mac OS X

NSMainNibFile

The name of an application’s main nib file. See “NSMainNibFile” for details.

Mac OS X, iPhone OS

NSPersistentStoreTypeKey

The type of Core Data persistent store associated with a persistent document type. See “NSPersistentStoreTypeKey” for details.

Mac OS X

NSPrefPaneIconFile

The name of an image file resource used to represent a preference pane in the System Preferences application. See “NSPrefPaneIconFile” for details.

Mac OS X

NSPrefPaneIconLabel

The name of a preference pane displayed beneath the preference pane icon in the System Preferences application. See “NSPrefPaneIconLabel” for details.

Mac OS X

NSPrincipalClass

The name of the bundle’s main class. See “NSPrincipalClass” for details.

Mac OS X

NSServices

An array of dictionaries specifying the services provided by an application. See “NSServices” for details.

Mac OS X

UIInterfaceOrientation

Specifies the initial orientation of the application’s user interface. See “UIInterfaceOrientation” for details.

iPhone OS

UIPrerenderedIcon

Specifies whether the iPhone OS applies sheen and bevel effects to the application icon. See “UIPrerenderedIcon” for details.

iPhone OS

UIRequiresPersistentWiFi

Specifies whether this application requires a Wi-Fi connection. See “UIRequiresPersistentWiFi” for details.

iPhone OS

UIStatusBarHidden

Specifies whether the status bar is initially hidden when the application launches. See “UIStatusBarHidden” for details.

iPhone OS

UIStatusBarStyle

Specifies the style of the status bar as the application launches. See “UIStatusBarStyle” for details.

iPhone OS

UTExportedTypeDeclarations

An array of dictionaries specifying the UTI-based types supported (and owned) by the application. See “UTExportedTypeDeclarations” for details.

Mac OS X

UTImportedTypeDeclarations

An array of dictionaries specifying the UTI-based types supported (but not owned) by the application. See “UTImportedTypeDeclarations” for details.

Mac OS X

Key Descriptions

Mac OS X provides a set of core keys for specifying information about a bundle. Some of these keys are given default values by the Xcode application depending on the type of project you create.

APInstallerURL

APInstallerURL (String) identifies the base path to the files you want to install. You must specify this path using the form file://localhost/path/. All installed files must reside within this directory.

APFiles

APFiles (Array) specifies a file or directory you want to install. You specify this key as a dictionary, the contents of which contains information about the file or directory you want to install. To specify multiple items, nest the APFiles key inside itself to specify files inside of a directory. Table 2 lists the keys for specifying information about a single file or directory.

Table 2  Keys for APFiles dictionary

Key

Type

Description

APFileDescriptionKey

String

A short description of the item to display in the Finder’s Info window

APDisplayedAsContainer

String

If “Yes” the item is shown with a folder icon in the Info panel; otherwise, it is shown with a document icon

APFileDestinationPath

String

Where to install the component as a path relative to the application bundle

APFileName

String

The name of the file or directory

APFileSourcePath

String

The path to the component in the application package relative to the APInstallerURL path.

APInstallAction

String

The action to take with the component: “Copy” or “Open”

ATSApplicationFontsPath

ATSApplicationFontsPath (String) identifies the location of a font file or directory of fonts in the bundle’s Resources directory. If present, Mac OS X activates the fonts at the specified path for use by the bundled application. The fonts are activated only for the bundled application and not for the system as a whole. The path itself should be specified as a relative directory of the bundle’s Resources directory. For example, if a directory of fonts was at the path /Applications/MyApp.app/Contents/Resources/Stuff/MyFonts/, you should specify the string Stuff/MyFonts/ for the value of this key.

CFAppleHelpAnchor

CFAppleHelpAnchor (String) identifies the name of the bundle’s initial HTML help file, minus the .html or .htm extension. This file must be located in the bundle’s localized resource directories or, if the help is not localized, directly under the Resources directory.

CFBundleAllowMixedLocalizations

CFBundleAllowMixedLocalizations (Boolean) specifies whether the bundle supports the retrieval of localized strings from frameworks. This key is used primarily by Foundation tools that link to other system frameworks and want to retrieve localized resources from those frameworks.

CFBundleDevelopmentRegion

CFBundleDevelopmentRegion (String) specifies the native region for the bundle. This key contains a string value that usually corresponds to the native language of the person who wrote the bundle. The language specified by this value is used as the default language if a resource cannot be located for the user’s preferred region or language.

CFBundleDisplayName

CFBundleDisplayName (String) specifies the display name of the bundle. If you support localized names for your bundle, include this key in both your information property list file and in the InfoPlist.strings files of your language subdirectories. If you localize this key, you should also include a localized version of the CFBundleName key.

If you do not intend to localize your bundle, do not include this key in your Info.plist file. Inclusion of this key does not affect the display of the bundle name but does incur a performance penalty to search for localized versions of this key.

Before displaying a localized name for your bundle, the Finder compares the value of this key against the actual name of your bundle in the file system. If the two names match, the Finder proceeds to display the localized name from the appropriate InfoPlist.strings file of your bundle. If the names do not match, the Finder displays the file-system name.

See File System Overview for more information on display names.

CFBundleDocumentTypes

CFBundleDocumentTypes (DictionaryArray) associates a document type with your application using a set of dictionaries. Each dictionary is called a type-definition dictionary and contains keys used to define the document type. Table 3 lists the keys that are supported in these dictionaries:

Table 3  Keys for type-definition dictionaries

Key

Type

Description

CFBundleTypeExtensions

Array

This key contains an array of strings. Each string contains a filename extension (minus the leading period) to map to this document type. To open documents with any extension, specify an extension with a single asterisk “*”. (In Mac OS X v10.4, this key is ignored if the LSItemContentTypes key is present.) Deprecated in Mac OS X v10.5.

CFBundleTypeIconFile

String

This key specifies the name of the icon file to associate with this document type. If you omit the extension, the system looks for your file with the extension .icns.

CFBundleTypeMIMETypes

Array

Contains an array of strings. Each string contains the MIME type name you want to map to this document type. (In Mac OS X v10.4, this key is ignored if the LSItemContentTypes key is present.) Deprecated in Mac OS X v10.5.

CFBundleTypeName

String

This key contains the abstract name for the document type and is used to refer to the type. This key is required and can be localized by including it in an InfoPlist.strings files. This value is the main way to refer to a document type. If you are concerned about this key being unique, you should consider using a uniform type identifier (UTI) for this string instead. If the type is a common Clipboard type supported by the system, you can use one of the standard types listed in the NSPasteboard class description. See Uniform Type Identifiers Overview for details on UTIs.

CFBundleTypeOSTypes

Array

This key contains an array of strings. Each string contains a four-letter type code that maps to this document type. To open documents of any type, include four asterisk characters (****) as the type code. These codes are equivalent to the legacy type codes used by Mac OS 9. (In Mac OS X v10.4, this key is ignored if the LSItemContentTypes key is present.) Deprecated in Mac OS X v10.5.

CFBundleTypeRole

String

This key specifies the application’s role with respect to the type. The value can be Editor, Viewer, Shell, or None. See “Document Configuration” for descriptions of these values. This key is required.

LSItemContentTypes

Array

This key contains an array of strings. Each string contains a UTI defining a supported file type. The UTI string must be spelled out explicitly, as opposed to using one of the constants defined by Launch Services. For example, to support PNG files, you would include the string “public.png“ in the array. When using this key, also add the NSExportableTypes key with the appropriate entries. In Mac OS X v10.4 and later, this key (when present) takes precedence these type identifier keys: CFBundleTypeExtensions, CFBundleTypeMIMETypes, CFBundleTypeOSTypes.

LSHandlerRank

String

Determines how Launch Services ranks this application among the applications that declare themselves editors or viewers of files of this type. The possible values are: Owner (this application is the creator of files of this type), Alternate (this application is a secondary viewer of files of this type), None (this application must never be used to open files of this type, but it accepts drops of files of this type), Default (default; this application doesn’t accept drops of files of this type). Launch Services uses the value of LSHandlerRank to determine the application to use to open files of this type. The order of precedence is: Owner, Alternate, None. This key is available in Mac OS X v10.5 and later.

LSTypeIsPackage

Boolean

Specifies whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. (In Mac OS X v10.4 and later, this key is ignored if the LSItemContentTypes key is present.)

NSDocumentClass

String

This key specifies the name of the NSDocument subclass used to instantiate instances of this document. This key is used by Cocoa applications only.

NSExportableAs

Array

This key specifies an array strings. Each string contains the name of another document type, that is, the value of a NSBundleTypeName property. This value represents another data format to which this document can export its content. This key is used by Cocoa applications only. Deprecated in Mac OS X v10.5.

NSExportableTypes

Array

This key specifies an array strings. Each string contains the name of another document type, that is, the value of a NSBundleTypeName property. This value represents another data format to which this document can export its content. This key is used by Cocoa applications only.

When registering document types, you must specify at least one of the keys LSItemContentTypes, CFBundleTypeExtensions, CFBundleTypeMIMETypes, or CFBundleTypeOSTypes along with the appropriate data. If you do not specify at least one of these keys, no document types are bound to the type-name specifier. You may use all three keys when binding your document type, if you so choose. In Mac OS X v10.4 and later, if you specify the LSItemContentTypes key, the other keys are ignored.

CFBundleExecutable

CFBundleExecutable (String) identifies the name of the bundle’s main executable file. For an application, this is the application executable. For a loadable bundle, it is the binary that will be loaded dynamically by the bundle. For a framework, it is the shared library for the framework. Xcode automatically adds this key to the information property list file of appropriate projects.

For frameworks, the value of this key is required to be the same as the framework name, minus the .framework extension. If the keys are not the same, the target system may incur some launch-performance penalties. for launch-performance reasons. The value should not include any extension on the name.

Important: You must include a valid CFBundleExecutable key in your bundle’s information property list file. Mac OS X uses this key to locate the bundle’s executable or shared library in cases where the user renames the application or bundle directory.

CFBundleGetInfoString

CFBundleGetInfoString (String) provides a brief description of the bundle. For an application bundle, this key provides a short description of the application or the current release that the build or release version number cannot convey; for example, the date of the release. This key can be localized.

CFBundleHelpBookFolder

CFBundleHelpBookFolder (String) identifies the folder containing the bundle’s help files. Help is usually localized to a specific language, so the folder specified by this key represents the folder name inside the .lproj directory for the selected language.

CFBundleHelpBookName

CFBundleHelpBookName (String) identifies the main help page for your application. This key identifies the name of the Help page, which may not correspond to the name of the HTML file. The Help page name is specified in the CONTENT attribute of the help file’s META tag.

CFBundleIconFile

CFBundleIconFile (String) identifies the file containing the icon for the bundle. The filename you specify does not need to include the extension, although it may. The Finder looks for the icon file in the Resources directory of the bundle.

If your bundle uses a custom icon, you must specify this property. If you do not specify this property, the Finder (and other applications) display your bundle with a default icon.

CFBundleIdentifier

CFBundleIdentifier (String) identifies the type of the bundle. This identifier should be a uniform type identifier (UTI) string, for example com.mycompany.MyApp. This key does not uniquely identify a specific bundle in the file system, as multiple copies of an application with the same or different version may exist. See Uniform Type Identifiers Overview for details on UTIs.

The preferences system uses this string to identify the application for which a given preference applies. Launch Services uses the bundle identifier to locate an application capable of opening a particular file, using the first application it finds with the given identifier.

CFBundleInfoDictionaryVersion

CFBundleInfoDictionaryVersion (String) identifies the current version of the property list structure. This key exists to support future versioning of the information property list file format. Xcode generates this key automatically when you build a bundle and you should not change it manually. The value for this key is currently 6.0.

CFBundleLocalizations

CFBundleLocalizations (Array) identifies the localizations handled manually by your application. If your executable is unbundled or does not use the existing bundle localization mechanism, you can include this key to specify the localizations your application does handle.

Each entry in this property’s array is a string identifying the language name or ISO language designator of the supported localization. See “Language Designations” in Internationalization Programming Topics in Internationalization Documentation for information on how to specify language designators.

CFBundleName

CFBundleName (String) identifies the short name of the bundle. This name should be less than 16 characters long and be suitable for displaying in the menu bar and the application’s Info window. You can include this key in the InfoPlist.strings file of an appropriate .lproj subdirectory to provide localized values for it. If you localize this key, you should also include the key “CFBundleDisplayName.”

CFBundlePackageType

CFBundlePackageType (String) identifies the type of the bundle and is analogous to the Mac OS 9 file type code. The value for this key consists of a four-letter code. The type code for applications is APPL; for frameworks, it is FMWK; for loadable bundles, it is BNDL. For loadable bundles, you can also choose a type code that is more specific than BNDL if you want.

CFBundleShortVersionString

CFBundleShortVersionString (String) specifies the release version number of the bundle, which identifies a released iteration of the application. The release version number is a string comprised of three period-separated integers. The first integer represents major revisions to the application, such as revisions that implement new features or major changes. The second integer denotes revisions that implement less prominent features. The third integer represents maintenance releases.

The value for this key differs from the value for “CFBundleVersion,” which identifies an iteration (released or unreleased) of the application.

CFBundleSignature

CFBundleSignature String) identifies the creator of the bundle and is analogous to the Mac OS 9 file creator code. The value for this key is a string containing a four-letter code that is specific to the bundle. For example, the signature for the TextEdit application is ttxt.

CFBundleURLTypes

CFBundleURLTypes DictionaryArray describes the URL schemes (http, ftp, and so on) supported by the application. The purpose of this key is similar to that of “CFBundleDocumentTypes,” but it describes URL schemes instead of document types. Each dictionary entry corresponds to a single URL scheme. Table 4 lists the keys to use in each dictionary entry.

Table 4  Keys for CFBundleURLTypes dictionaries

Key

Type

Description

CFBundleTypeRole

String

This key specifies the application’s role with respect to the URL type. The value can be Editor, Viewer, Shell, or None. See “Document Configuration” for descriptions of these values. This key is required.

CFBundleURLIconFile

String

This key contains the name of the icon image file (minus the extension) to be used for this URL type.

CFBundleURLName

String

This key contains the abstract name for this URL type. This is the main way to refer to a particular type. To ensure uniqueness, it is recommended that you use a Java-package style identifier. This name is also used as a key in the InfoPlist.strings file to provide the human-readable version of the type name.

CFBundleURLSchemes

Array

This key contains an array of strings, each of which identifies a URL scheme handled by this type. Examples of URL schemes include http, ftp, and so on.

CFBundleVersion

CFBundleVersion (String) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. This is a monotonically increased string, comprised of one or more period-separated integers. This key is not localizable.

CFPlugInDynamicRegistration

CFPlugInDynamicRegistration (String) specifies whether how host loads this plug-in. If the value is YES, the host attempts to load this plug-in using its dynamic registration function. If the value is NO, the host uses the static registration information included in the “CFPlugInFactories,” and “CFPlugInTypes” keys.

See “Plug-in Registration” in Plug-ins for information about registering plug-ins.

CFPlugInDynamicRegisterFunction

CFPlugInDynamicRegisterFunction (String) identifies the function to use when dynamically registering a plug-in. Specify this key if you want to specify one of your own functions instead of implement the default CFPlugInDynamicRegister function.

See “Plug-in Registration” in Plug-ins for information about registering plug-ins.

CFPlugInFactories

CFPlugInFactories (Dictionary) is used for static plug-in registration. It contains a dictionary identifying the interfaces supported by the plug-in. Each key in the dictionary is a universally unique ID (UUID) representing the supported interface. The value for the key is a string with the name of the plug-in factory function to call.

See “Plug-in Registration” in Plug-ins for information about registering plug-ins.

CFPlugInTypes

CFPlugInTypes (Dictionary) is used for static plug-in registration. It contains a dictionary identifying one or more groups of interfaces supported by the plug-in. Each key in the dictionary is a universally unique ID (UUID) representing the group of interfaces. The value for the key is an array of strings, each of which contains the UUID for a specific interface in the group. The UUIDs in the array corresponds to entries in the “CFPlugInFactories” dictionary.

See “Plug-in Registration” in Plug-ins for information about registering plug-ins.

CFPlugInUnloadFunction

CFPlugInUnloadFunction String) specifies the name of the function to call when it is time to unload the plug-in code from memory. This function gives the plug-in an opportunity to clean up any data structures it allocated.

See “Plug-in Registration” in Plug-ins for information about registering plug-ins.

CSResourcesFileMapped

CSResourcesFileMapped Boolean) specifies whether to map this application’s resource files into memory. Otherwise, they are read into memory normally. File mapping can improve performance in situations where you are frequently accessing a small number of resources. However, resources are mapped into memory read-only and cannot be modified.

LSArchitecturePriority

LSArchitecturePriority (StringArray) identifies the architectures this application supports. The order of the strings in this array dictate the preferred execution priority for the architectures. The possible strings for this array are listed in Table 5.

Table 5  Execution architecture identifiers

String

Description

i386

The 32-bit Intel architecture.

ppc

The 32-bit PowerPC architecture.

x86_64

The 64-bit Intel architecture.

ppc64

The 64-bit PowerPC architecture.

if a PowerPC architecture appears before either of the Intel architectures, Mac OS X runs the executable under Rosetta emulation on Intel-based Macintosh computers regardless by default. To force Mac OS X to use the current platform’s native architecture, include the “LSRequiresNativeExecution” key in your information property list.

LSBackgroundOnly

LSBackgroundOnly (Boolean) specifies whether this application runs only in the background. If this key exists and is set to “1”, Launch Services runs the application in the background only. You can use this key to create faceless background applications. You should also use this key if your application uses higher-level frameworks that connect to the window server, but are not intended to be visible to users. Background applications must be compiled as Mach-O executables. This option is not available for CFM applications.

LSEnvironment

LSEnvironment Dictionary) defines environment variables to be set before launching this application. The names of the environment variables are the keys of the dictionary, with the values being the corresponding environment variable value. Both keys and values must be strings.

These environment variables are set only for applications launched through Launch Services. If you run your executable directly from the command line, these environment variables are not set.

LSFileQuarantineEnabled

LSFileQuarantineEnabled (Boolean) specifies whether files this application creates are quarantined by default.

Value

Description

true

Files created by this application are quarantined by default.

false

(Default) Files created by this application are not quarantined by default.

See

This key is available in Mac OS X v10.5 and later.

LSGetAppDiedEvents

LSGetAppDiedEvents (Boolean) indicates whether the operation system notifies this application when when one of its child process terminates. If you set the value of this key to YES, the system sends your application an kAEApplicationDied Apple event for each child process as it terminates.

LSHasLocalizedDisplayName

LSHasLocalizedDisplayName (String) specifies whether the Finder displays the name of this application as a localized string. When set to “1”, the Finder displays the name of your application as a localized string. Include this key only if you include localized versions of the key “CFBundleDisplayName” in your language-specific InfoPList.strings files.

Including this key significantly improves the performance of localized filename display. If your bundle supports localized display names, you should include this key in your information property list file.

LSMinimumSystemVersion

LSMinimumSystemVersion (String) indicates the minimum version of Mac OS X required for this application to run. This string is usually of the form n.n.n where n is a number. The first number is the major version number of the system. The second and third numbers are minor revision numbers. For example, to support Mac OS X v10.1 and later, you would set the value of this key to "10.1.5".

If the minimum system version is not available, Mac OS X tries to display an alert panel notifying the user of that fact, although it may not always be able to do so.

LSMinimumSystemVersionByArchitecture

LSMinimumSystemVersionByArchitecture (Dictionary) specifies the earliest Mac OS X version for a set of architectures. This key contains a dictionary of key-value pairs. Each key corresponds to one of the architectures associated with the “LSExecutableArchitectures” key. The value for each key is the minimum version of Mac OS X required for the application to run under that architecture. This string is usually of the form n.n.n where n is a number. The first number is the major version number of the system. The second and third numbers are minor revision numbers. For example, to support Mac OS X v10.4.9 and later, you would set the value of this key to "10.4.9".

If the current system version is less than the required minimum version, Launch Services does not attempt to use the corresponding architecture. This key applies only to the selection of an execution architecture and can be used in conjunction with the “LSMinimumSystemVersion” key, which specifies the overall minimum system version requirement for the application.

LSMultipleInstancesProhibited

LSMultipleInstancesProhibited (Boolean) indicates whether an application is prohibited from running simultaneously in multiple user sessions. If true, the application runs in only one user session at a time. You can use this key to prevent resource conflicts that might arise by sharing an application across multiple user sessions. For example, you might want to prevent users from accessing a custom USB device when it is already in use by a different user.

Launch Services returns an appropriate error code if the target application cannot be launched. If a user in another session is running the application, Launch Services returns a kLSMultipleSessionsNotSupportedErr error. If you attempt to launch a separate instance of an application in the current session, it returns kLSMultipleInstancesProhibitedErr.

LSRequiresIPhoneOS

LSRequiresIPhoneOS (Boolean) specifies whether the application can run only on iPhone OS. If this key is set to YES, Launch Services allows the application to launch only when the host platform is iPhone OS.

LSRequiresNativeExecution

LSRequiresNativeExecution (Boolean) specifies whether to launch the application using the subbinary for the current architecture. If this key is set to YES, Launch Services always runs the application using the binary compiled for the current architecture. You can use this key to prevent a universal binary from being run under Rosetta emulation on an Intel-based Macintosh computer. For more information about configuring the execution architectures, see “LSExecutableArchitectures.”

LSUIElement

LSUIElement (String). If this key is set to “1”, Launch Services runs the application as an agent application. Agent applications do not appear in the Dock or in the Force Quit window. Although they typically run as background applications, they can come to the foreground to present a user interface if desired. A click on a window belonging to an agent application brings that application forward to handle events.

The Dock and loginwindow are two applications that run as agent applications.

LSUIPresentationMode

LSUIPresentationMode (Number) identifies the initial user-interface mode for the application. You would use this in applications that may need to take over portions of the screen that contain UI elements such as the Dock and menu bar. Most modes affect only UI elements that appear in the content area of the screen, that is, the area of the screen that does not include the menu bar. However, you can request that all UI elements be hidden as well.

This key is applicable to both Carbon and Cocoa applications and can be one of the following values:

Value

Description

0

Normal mode. In this mode, all standard system UI elements are visible. This is the default value.

1

Content suppressed mode. In this mode, system UI elements in the content area of the screen are hidden. UI elements may show themselves automatically in response to mouse movements or other user activity. For example, the Dock may show itself when the mouse moves into the Dock’s auto-show region.

2

Content hidden mode. In this mode, system UI elements in the content area of the screen are hidden and do not automatically show themselves in response to mouse movements or user activity.

3

All hidden mode. In this mode, all UI elements are hidden, including the menu bar. Elements do not automatically show themselves in response to mouse movements or user activity.

4

All suppressed mode. In this mode, all UI elements are hidden, including the menu bar. UI elements may show themselves automatically in response to mouse movements or other user activity. This option is available only in Mac OS X 10.3 and later.

LSVisibleInClassic

LSVisibleInClassic (String). If this key is set to “1”, any agent applications or background-only applications with this key appears as background-only processes to the Classic environment. Agent applications and background-only applications without this key do not appear as running processes to Classic at all. Unless your process needs to communicate explicitly with a Classic application, you do not need to include this key.

NSAppleScriptEnabled

NSAppleScriptEnabled (Boolean or String). This key identifies whether the application is scriptable. Set the value of this key to true (when typed as Boolean) or “YES” (when typed as String) if your application supports AppleScript.

NSHumanReadableCopyright

NSHumanReadableCopyright (String). This key contains a string with the copyright notice for the bundle; for example, © 2008, My Company. You can load this string and display it in an About dialog box. This key can be localized by including it in your InfoPlist.strings files. This key replaces the obsolete CFBundleGetInfoString key.

NSJavaNeeded

NSJavaNeeded (Boolean or String). This key specifies whether the Java VM must be loaded and started up prior to executing the bundle code. This key is required only for Cocoa Java applications to tell the system to launch the Java environment. If you are writing a pure Java application, do not include this key.

You can also specify a string type with the value “YES” instead of a Boolean value if desired.

Deprecated in Mac OS X v10.5.

NSJavaPath

NSJavaPath (Array). This key contains an array of paths. Each path points to a Java class. The path can be either an absolute path or a relative path from the location specified by the key “NSJavaRoot.” The development environment (or, specifically, its jamfiles) automatically maintains the values in the array.

Deprecated in Mac OS X v10.5.

NSJavaRoot

NSJavaRoot (String). This key contains a string identifying a directory. This directory represents the root directory of the application’s Java class files.

NSMainNibFile

NSMainNibFile (String). This key contains a string with the name of the application’s main nib file (minus the .nib extension). A nib file is an Interface Builder archive containing the description of a user interface along with any connections between the objects of that interface. The main nib file is automatically loaded when an application is launched.

NSPersistentStoreTypeKey

NSPersistentStoreTypeKey (String). This key contains a string that specifies the type of Core Data persistent store associated with a document type (see “CFBundleDocumentTypes”). See NSPersistentStoreCoordinator_Store_Types for possible values.

NSPrefPaneIconFile

NSPrefPaneIconFile (String). This key contains a string with the name of an image file (including extension) containing the preference pane’s icon. This key should only be used by preference pane bundles. The image file should contain an icon 32 by 32 pixels in size. If this key is omitted, the System Preferences application looks for the image file using the CFBundleIconFile key instead.

NSPrefPaneIconLabel

NSPrefPaneIconLabel (String). This key contains a string with the name of a preference pane. This string is displayed below the preference pane’s icon in the System Preferences application. You can split long names onto two lines by including a newline character (‘\n’) in the string. If this key is omitted, the System Preferences application gets the name from the CFBundleName key.

This key can be localized and included in the InfoPlist.strings files of a bundle.

NSPrincipalClass

NSPrincipalClass (String). This key contains a string with the name of a bundle’s principal class. This key is used to identify the entry point for dynamically loaded code, such as plug-ins and other dynamically-loaded bundles. The principal class of a bundle typically controls all other classes in the bundle and mediates between those classes and any classes outside the bundle. The class identified by this value can be retrieved using the principalClass method of NSBundle. For Cocoa applications, the value for this key is NSApplication by default.

NSServices

NSServices (Array). This key contains an array of dictionaries specifying the services provided by the application. Table 6 lists the keys for specifying a service:

Table 6  Keys for NSServices dictionaries

Key

Type

Description

NSPortName

String

This key specifies the name of the port your application monitors for incoming service requests. Its value depends on how the service provider application is registered. In most cases, this is the application name. For more information, see System Services.

NSMessage

String

This key specifies the name of the instance method to invoke for the service. In Objective-C, the instance method must be of the form messageName:userData:error:. In Java, the instance method must be of the form messageName(NSPasteBoard,String).

NSSendTypes

Array

This key specifies an array of data type names that can be read by the service. The NSPasteboard class description lists several common data types. You must include this key, the NSReturnTypes key, or both.

NSReturnTypes

Array

This key specifies an array of data type names that can be returned by the service. The NSPasteboard class description lists several common data types. You must include this key, the NSSendTypes key, or both.

NSMenuItem

Dictionary

This key contains a dictionary that specifies the text to add to the Services menu. The only key in the dictionary is called default and its value is the menu item text. This value must be unique. You can use a slash character “/” to specify a submenu. For example, Mail/Send would appear in the Services menu as a menu named Mail with an item named Send.

NSKeyEquivalent

Dictionary

This key is optional and contains a dictionary with the keyboard equivalent used to invoke the service menu command. Similar to NSMenuItem, the only key in the dictionary is called default and its value is a single character. Users invoke this keyboard equivalent by pressing the Command and Shift key modifiers along with the character.

NSUserData

String

This key is an optional string that contains a value of your choice.

NSTimeout

String

This key is an optional numerical string that indicates the number of milliseconds Services should wait for a response from the application providing a service when a response is required.

UIInterfaceOrientation

UIInterfaceOrientation (String) specifies the initial orientation of the application’s user interface.

This value is based on the Interface Orientation Constants constants declared in the UIApplication.h header file. The default style is UIInterfaceOrientationPortrait.

UIPrerenderedIcon

UIPrerenderedIcon (Boolean) specifies whether the iPhone OS applies sheen and bevel effects to the application icon.

Value

Description

YES

iPhone OS doesn’t apply sheen and bel effects to the application icon.

NO

(Default) iPhone OS applies sheen and bel effects to the application icon.

UIRequiresPersistentWiFi

UIRequiresPersistentWiFi (Boolean) specifies whether the application requires a Wi-Fi connection. iPhone OS maintains the active Wi-Fi connection open while the application is running.

Value

Description

YES

iPhone OS opens a Wi-Fi connection when this application is launched and keeps it open while the application is running. Use with Wi-Fi–based applications.

NO

(Default) iPhone OS closes the active Wi-Fi connection after 30 minutes.

UIStatusBarHidden

UIStatusBarHidden (Boolean) specifies whether the status bar is initially hidden when the application launches.

Value

Description

YES

Hides the status bar.

NO

Shows the status bar.

UIStatusBarStyle

UIStatusBarStyle (String) specifies the style of the status bar as the application launches.

This value is based on the Status Bar Style Constants constants declared in UIApplication.h header file. The default style is UIStatusBarStyleGray.

UTExportedTypeDeclarations

UTExportedTypeDeclarations (DictionaryArray) declares the uniform type identifiers (UTIs) owned and exported by the application. You use this key to declare your application’s custom data formats and associate them with UTIs. Exporting a list of UTIs is the preferred way to register your custom file types; however, Launch Services recognizes this key and its contents only in Mac OS X v10.5 and later. This key is ignored on versions of Mac OS X prior to version 10.5.

The value for the UTExportedTypeDeclarations key is an array of dictionaries. Each dictionary contains a set of key-value pairs identifying the attributes of the type declaration. Table 7 lists the keys you can include in this dictionary along with the typical values they contain. These keys can also be included in array of dictionaries associated with the “UTImportedTypeDeclarations” key.

Table 7  UTI property list keys

Key

Type

Description

UTTypeConformsTo

Array

(Required) Contains an array of strings. Each string identifies a UTI to which this type conforms. These keys represent the parent categories to which your custom file format belongs. For example, a JPEG file type conforms to the public.image and public.data types. For a list of high-level types, see System-Declared Uniform Type Identifiers in Uniform Type Identifiers Overview.

UTTypeDescription

String

A user-readable description of this type. The string associated with this key may be localized in your bundle’s InfoPlist.strings files.

UTTypeIconFile

String

The name of the bundle icon resource to associate with this UTI. You should include this key only for types that your application exports.

UTTypeIdentifier

String

(Required) The UTI you want to assign to the type. This string uses the reverse-DNS format, whereby more generic types come first. For example, a custom format for your company would have the form com.<yourcompany>.<type>.<subtype>.

UTTypeReferenceURL

String

The URL for a reference document that describes this type.

UTTypeTagSpecification

Dictionary

(Required) A dictionary defining one or more equivalent type identifiers. The key-value pairs listed in this dictionary identify the filename extensions, MIME types, OSType codes, and pasteboard types that correspond to this type. For example, to specify filename extensions, you would use the key public.filename-extension and associate it with an array of strings containing the actual extensions. For more information about the keys for this dictionary, see System-Declared Uniform Type Identifiers in Uniform Type Identifiers Overview.

For more information about UTIs and their use, see Uniform Type Identifiers Overview.

UTImportedTypeDeclarations

UTImportedTypeDeclarations (Array) declares the uniform type identifiers (UTIs) inherently supported (but not owned) by the application. You use this key to declare any supported types that your application recognizes and wants to ensure are recognized by Launch Services, regardless of whether the application that owns them is present. For example, you could use this key to specify a file format that is defined by another company but which your program can read and export.

The value for the UTExportedTypeDeclarations key is an array of dictionaries and uses the same keys as those for the “UTExportedTypeDeclarations” key. For a list of these keys, see Table 7.

For more information about UTIs and their use, see Uniform Type Identifiers Overview.



< Previous PageNext Page > Hide TOC


© 2003, 2008 Apple Inc. All Rights Reserved. (Last updated: 2008-07-08)


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.