in fop list key reference

82
Information Property List Key Reference

Upload: mikemcaulay

Post on 14-Oct-2014

3.512 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: In Fop List Key Reference

Information Property ListKey Reference

Page 2: In Fop List Key Reference

Contents

About Info.plist Keys 7At a Glance 7

The Info.plist File Configures Your Application 7Core Foundation Keys Describe Common Behavior 8Launch Services Keys Describe Launch-Time Behavior 8Cocoa Keys Describe Behavior for Cocoa and Cocoa Touch Applications 8Mac OS X Keys Describe Behavior for Mac OS X Applications 8UIKit Keys Describe Behavior for iOS Applications 9

See Also 9

About Information Property List Files 10Creating and Editing an Information Property List File 10Adding Keys to an Information Property List File 12Localizing Property List Values 12Creating Device-Specific Keys 13Custom Keys 14Recommended Info.plist Keys 14

Recommended Keys for iOS Applications 14Recommended Keys for Cocoa Applications 15Commonly Localized Keys 16

Core Foundation Keys 17Key Summary 17CFAppleHelpAnchor 20CFBundleAllowMixedLocalizations 20CFBundleDevelopmentRegion 20CFBundleDisplayName 21CFBundleDocumentTypes 21

Document Roles 28Document Icons 28Recommended Keys 29

CFBundleExecutable 29CFBundleHelpBookFolder 30CFBundleHelpBookName 30

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

2

Page 3: In Fop List Key Reference

CFBundleIconFile 30CFBundleIconFiles 31CFBundleIcons 31

Contents of the CFBundlePrimaryIcon Dictionary 32Contents of the UINewsstandIcon Dictionary 33

CFBundleIdentifier 34CFBundleInfoDictionaryVersion 34CFBundleLocalizations 34CFBundleName 35CFBundlePackageType 35CFBundleShortVersionString 35CFBundleSignature 35CFBundleURLTypes 36CFBundleVersion 37CFPlugInDynamicRegistration 37CFPlugInDynamicRegisterFunction 37CFPlugInFactories 38CFPlugInTypes 38CFPlugInUnloadFunction 38

Launch Services Keys 39Key Summary 39LSApplicationCategoryType 41LSArchitecturePriority 43LSBackgroundOnly 44LSEnvironment 44LSFileQuarantineEnabled 44LSFileQuarantineExcludedPathPatterns 44LSGetAppDiedEvents 45LSMinimumSystemVersion 45LSMinimumSystemVersionByArchitecture 45LSMultipleInstancesProhibited 46LSRequiresIPhoneOS 46LSRequiresNativeExecution 46LSUIElement 46LSUIPresentationMode 47LSVisibleInClassic 47MinimumOSVersion 48

Cocoa Keys 49

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

3

Page 4: In Fop List Key Reference

Key Summary 49NSAppleScriptEnabled 51NSDockTilePlugIn 51NSHumanReadableCopyright 51NSJavaNeeded 52NSJavaPath 52NSJavaRoot 52NSMainNibFile 52NSPersistentStoreTypeKey 52NSPrefPaneIconFile 53NSPrefPaneIconLabel 53NSPrincipalClass 53NSServices 53NSSupportsAutomaticTermination 62NSSupportsSuddenTermination 63NSUbiquitousDisplaySet 63UTExportedTypeDeclarations 63UTImportedTypeDeclarations 65

Mac OS X Keys 66Key Summary 66APInstallerURL 67APFiles 67ATSApplicationFontsPath 68CSResourcesFileMapped 68QuartzGLEnable 68

UIKit Keys 69Key Summary 69UIAppFonts 71UIApplicationExitsOnSuspend 71UIBackgroundModes 72UIDeviceFamily 73UIFileSharingEnabled 73UIInterfaceOrientation 73UILaunchImageFile 74UIMainStoryboardFile 74UINewsstandApp 74UIPrerenderedIcon 75UIRequiredDeviceCapabilities 75

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

4

Page 5: In Fop List Key Reference

UIRequiresPersistentWiFi 77UIStatusBarHidden 78UIStatusBarStyle 78UISupportedExternalAccessoryProtocols 78UISupportedInterfaceOrientations 79UIViewEdgeAntialiasing 79UIViewGroupOpacity 80

Document Revision History 81

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

5

Page 6: In Fop List Key Reference

Figures and Tables

About Information Property List Files 10Figure 1 Editing the information property list in Xcode 11

Core Foundation Keys 17Table 1 Summary of Core Foundation keys 17Table 2 Keys for type-definition dictionaries 22Table 3 Document icon sizes for iOS 28Table 4 Keys for the CFBundlePrimaryIcon dictionary 32Table 5 Keys for the UINewsstandIcon dictionary 33Table 6 Keys for CFBundleURLTypes dictionaries 36

Launch Services Keys 39Table 1 Summary of Launch Services keys 39Table 2 UTIs for application categories 41Table 3 UTIs for game-specific categories 42Table 4 Execution architecture identifiers 43

Cocoa Keys 49Table 1 Summary of Cocoa keys 49Table 2 Keys for NSServices dictionaries 54Table 3 Contents of the NSRequiredContext dictionary 61Table 4 UTI property list keys 64

Mac OS X Keys 66Table 1 Summary of Mac OS X keys 66Table 2 Keys for APFiles dictionary 67

UIKit Keys 69Table 1 Summary of UIKit keys 69Table 2 Values for the UIBackgroundModes array 72Table 3 Values for the UIDeviceFamily key 73Table 4 Dictionary keys for the UIRequiredDeviceCapabilities key 75Table 5 Supported orientations 79

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

6

Page 7: In Fop List Key Reference

To provide a better experience for users, iOS and Mac OS X rely on the presence of special meta informationin each application or bundle. This meta information is used in many different ways. Some of it is displayed tothe user, some of it is used internally by the system to identify your application and the document types itsupports, and some of it is used by the system frameworks to facilitate the launch of applications. The way anapplication provides its meta information to the system is through the use of a special file called an informationproperty list file.

Property lists are a way of structuring arbitrary data and accessing it at runtime. An information property listis a specialized type of property list that contains configuration data for a bundle. The keys and values in thefile describe the various behaviors and configuration options you want applied to your bundle. Xcode typicallycreates an information property list file for any bundle-based projects automatically and configures an initialset of keys and values with appropriate default values. You can edit the file, however, to add any keys andvalues that are appropriate for your project or change the default values of existing keys.

At a GlanceThis document describes the keys (and corresponding values) that you can include in an information propertylist file. This document also includes an overview of information property list files to help you understand theirimportance and to provide tips on how to configure them.

The Info.plist File Configures Your ApplicationEvery application and plug-in uses an Info.plist file to store configuration data in a place where the systemcan easily access it. Mac OS X and iOS use Info.plist files to determine what icon to display for a bundle,what document types an application supports, and many other behaviors that have an impact outside thebundle itself.

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

7

About Info.plist Keys

Page 8: In Fop List Key Reference

Relevant chapter “About Information Property List Files” (page 10)

Core Foundation Keys Describe Common BehaviorThere are many keys that you always specify, regardless of the type of bundle you are creating. Those keysstart with a CF prefix and are known as the Core Foundation keys. Xcode includes the most important keys inyour Info.plist automatically but there are others you must add manually.

Relevant chapter “Core Foundation Keys” (page 17)

Launch Services Keys Describe Launch-Time BehaviorLaunch Services provides support for launching applications. To do this, though, it needs to know informationabout how your application wants to be launched. The Launch Services keys describe the way your applicationprefers to be launched.

Relevant chapter “Launch Services Keys” (page 39)

Cocoa Keys Describe Behavior for Cocoa and Cocoa Touch ApplicationsThe Cocoa and Cocoa Touch frameworks use keys to identify high-level information such as your application’smain nib file and principal class. The Cocoa keys describe those and other keys that affect how the Cocoa andCocoa Touch frameworks initialize and run your application.

Relevant chapter “Cocoa Keys” (page 49)

Mac OS X Keys Describe Behavior for Mac OS X ApplicationsSome Mac OS X frameworks use keys to modify their basic behavior. Developers of Mac OS X application mightinclude these keys during testing or to modify certain aspects of your application’s behavior.

About Info.plist KeysAt a Glance

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

8

Page 9: In Fop List Key Reference

Relevant chapter “Mac OS X Keys” (page 66)

UIKit Keys Describe Behavior for iOS ApplicationsAn iOS application communicates a lot of information to the system using Info.plist keys. Xcode suppliesa standard Info.plist with the most important keys but most applications need to augment the standardfile with additional keys describing everything from the application’s initial orientation to whether it supportsfile sharing.

Relevant chapter “UIKit Keys” (page 69)

See AlsoFor more information about generic property lists, including how they are structured and how you use them,see Property List Programming Guide .

Some information property list keys use Uniform Type Identifiers (UTIs) to refer to data of different types. Foran introduction to UTIs and how they are specified, see Uniform Type Identifiers Overview .

About Info.plist KeysSee Also

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

9

Page 10: In Fop List Key Reference

An information property list file is a structured text file that contains essential configuration information for abundled executable. The file itself is typically encoded using the Unicode UTF-8 encoding and the contentsare structured using XML. The root XML node is a dictionary, whose contents are a set of keys and valuesdescribing different aspects of the bundle. The system uses these keys and values to obtain information aboutyour application and how it is configured. As a result, all bundled executables (plug-ins, frameworks, andapplications) are expected to have an information property list file.

By convention, the name of an information property list file is Info.plist. This name of this file is casesensitive and must have an initial capital letter I. In iOS applications, this file resides in the top-level of thebundle directory. In Mac OS X bundles, this file resides in the bundle’s Contents directory. Xcode typicallycreates this file for you automatically when you create a project of an appropriate type.

Important In the sections that follow, pay attention to the capitalization of files and directories that resideinside a bundle. The NSBundle class and Core Foundation bundle functions consider case when searchingfor resources inside a bundle directory. Case mismatches could prevent you from finding your resourcesat runtime.

Creating and Editing an Information Property List FileThe simplest way to create an information property list file is to let Xcode create it for you. Each new bundle-basedproject that you create in Xcode comes with a file named <project>-Info.plist, where <project> is thename of the project. At build time, this file is used to generate the Info.plist file that is then included inthe resulting bundle.

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

10

About Information Property List Files

Page 11: In Fop List Key Reference

To edit the contents of your information property list file, select the <project>-Info.plist file in your Xcodeproject to display the property list editor. Figure 1 shows the editor for the information property list file of anew Cocoa application project. The file created by Xcode comes preconfigured with keys that every informationproperty list should have.

Figure 1 Editing the information property list in Xcode

To edit the value for a specify key, double-click the value in the Xcode property list editor to select it, then typea new value. Most values are specified as strings but Xcode also supports several other scalar types. You canalso specify complex types such as an array or dictionary. The property list editor displays an appropriateinterface for editing each type. To change the type of a given value, make sure the value is not selected andControl-click it to display its contextual menu. From the Value Type submenu, select the type you want to usefor the value.

Because information property lists are usually just text files, you can also edit them using any text editor thatsupports the UTF-8 file encoding. Because they are XML files, however, editing property list files manually isgenerally discouraged.

About Information Property List FilesCreating and Editing an Information Property List File

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

11

Page 12: In Fop List Key Reference

Adding Keys to an Information Property List FileAlthough the Info.plist file provided by Xcode contains the most critical keys required by the system, mostapplications should typically specify several additional keys. Many subsystems and system applications usethe Info.plist file to gather information about your application. For example, when the user chooses File> Get Info for your application, the Finder displays information from many of these keys in the resultinginformation window.

You add keys to your app’s Info.plist using the Xcode property list editor. For information about how to usethis editor, see Property List Editor Help .

Important The property list editor in Xcode displays human-readable strings (instead of the actual keyname) for many keys by default. To display the actual key names as they appear in the Info.plist file,Control-click any of the keys in the editor window and enable the Show Raw Keys/Values item in thecontextual menu.

For a list of the recommended keys you should include in a typical application, see “Recommended Info.plistKeys” (page 14).

Localizing Property List ValuesThe values for many keys in an information property list file are human-readable strings that are displayed tothe user by the Finder or your own application. When you localize your application, you should be sure tolocalize the values for these strings in addition to the rest of your application’s content.

Localized values are not stored in the Info.plist file itself. Instead, you store the values for a particularlocalization in a strings file with the name InfoPlist.strings. You place this file in the same language-specific

project directory that you use to store other resources for the same localization. The contents of theInfoPlist.strings file are the individual keys you want localized and the appropriately translated value.The routines that look up key values in the Info.plist file take the user’s language preferences into accountand return the localized version of the key (from the appropriate InfoPlist.strings file) when one exists.If a localized version of a key does not exist, the routines return the value stored in the Info.plist file.

For example, the TextEdit application has several keys that are displayed in the Finder and thus should belocalized. Suppose your information property list file defines the following keys:

<key>CFBundleDisplayName</key>

<string>TextEdit</string>

<key>NSHumanReadableCopyright</key>

About Information Property List FilesAdding Keys to an Information Property List File

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

12

Page 13: In Fop List Key Reference

<string>Copyright © 1995-2009, Apple Inc.,All Rights Reserved.

</string>

The French localization for TextEdit then includes the following strings in the InfoPlist.strings file of itsContents/Resources/French.lproj directory:

CFBundleDisplayName = "TextEdit";

NSHumanReadableCopyright = "Copyright © 1995-2009 Apple Inc.\nTous droits réservés.";

For more information about the placement of InfoPlist.strings files in your bundle, see BundleProgrammingGuide . For information about creating strings files, seeResource ProgrammingGuide . For additionalinformation about the localization process, see Internationalization Programming Topics .

Creating Device-Specific KeysIn iOS 3.2 and later, applications can designate keys in the Info.plist file as being applicable only to specifictypes of devices. To create a device-specific key, you combine the key name with some special qualifiers usingthe following pattern:

key_root-<platform>~<device>

In this pattern, the key_root portion represents the original name of the key. The <platform> and <device>portions are both optional endings that you can use to apply keys to specific platforms or devices. For theplatform key, you can specify a value of iphoneos or macos depending on the platform you are targeting.

To apply a key to a specific device, you can use one of the following values:

● iphone - The key applies to iPhone devices only.

● ipod - The key applies to iPod touch devices only.

● ipad - The key applies to iPad devices only.

When specifying keys, it is recommended that you always include a key without any device modifiers so thatyou have a reasonable default value. You can then add versions of the key with device-specific overrides, asneeded, to customize the value for a specific device. When searching for a key in your application’s Info.plistfile, the system chooses the key that is most specific to the current device first. If it does not find a device-specifickey, it looks for one without any device modifiers. Thus, having an unmodified key means that there is always

About Information Property List FilesCreating Device-Specific Keys

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

13

Page 14: In Fop List Key Reference

a default value for the given key. For example, to specify a portrait launch orientation for iPhone and iPodtouch devices and a landscape-right launch orientation for iPad, you should specify the corresponding keysin your Info.plist file:

<key>UIInterfaceOrientation</key>

<string>UIInterfaceOrientationPortrait</string>

<key>UIInterfaceOrientation~ipad</key>

<string>UIInterfaceOrientationLandscapeRight</string>

Custom KeysMac OS X and iOS ignore any custom keys you include in an Info.plist file. If you want to includeapplication-specific configuration information in your Info.plist file, you may do so freely as long as yourkey names do not conflict with the ones Apple uses. When defining custom key names, it is advised that youprefix them with a unique prefix such as your application’s bundle ID or your company’s domain name.

Recommended Info.plist KeysWhen creating an information property list file, there are several keys that you should always include. Thesekeys are almost always accessed by the system and providing them ensures that the system has the informationit needs to work with your application effectively.

Recommended Keys for iOS ApplicationsIt is recommended that an iOS application include the following keys in its information property list file. Mostare set by Xcode automatically when you create your project.

● CFBundleDevelopmentRegion

● CFBundleDisplayName

● CFBundleExecutable

● CFBundleIconFiles

● CFBundleIdentifier

● CFBundleInfoDictionaryVersion

● CFBundlePackageType

● CFBundleVersion

About Information Property List FilesCustom Keys

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

14

Page 15: In Fop List Key Reference

● LSRequiresIPhoneOS

● NSMainNibFile

In addition to these keys, there are several that are commonly included:

● UIStatusBarStyle

● UIInterfaceOrientation

● UIRequiredDeviceCapabilities

● UIRequiresPersistentWiFi

For descriptions of these keys, see the other chapters of this book.

Recommended Keys for Cocoa ApplicationsIt is recommended that a Cocoa application include the following keys in its information property list file. Mostare set by Xcode automatically when you create your project but some may need to be added.

● CFBundleDevelopmentRegion

● CFBundleDisplayName

● CFBundleExecutable

● CFBundleIconFiles

● CFBundleIdentifier

● CFBundleInfoDictionaryVersion

● CFBundleName

● CFBundlePackageType

● CFBundleShortVersionString

● CFBundleSignature

● CFBundleVersion

● LSHasLocalizedDisplayName

● NSHumanReadableCopyright

These keys identify your application to the system and provide some basic information about the services itprovides. Cocoa applications should also include the following keys to identify key resources in the bundle:

● NSMainNibFile

● NSPrincipalClass

About Information Property List FilesRecommended Info.plist Keys

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

15

Page 16: In Fop List Key Reference

Note If you are building a Cocoa application using an Xcode template, the NSMainNibFile andNSPrincipalClass keys are typically already set in the template project.

For descriptions of these keys, see the other chapters of this book.

Commonly Localized KeysIn addition to the recommended keys, there are several keys that should be localized and placed in yourlanguage-specific InfoPlist.strings files:

● CFBundleDisplayName

● CFBundleName

● CFBundleShortVersionString

● NSHumanReadableCopyright

For more information about localizing information property list keys, see “Localizing Property List Values” (page12).

About Information Property List FilesRecommended Info.plist Keys

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

16

Page 17: In Fop List Key Reference

The Core Foundation framework provides the underlying infrastructure for bundles, including the code usedat runtime to load bundles and parse their structure. As a result, many of the keys recognized by this frameworkare fundamental to the definition of bundles themselves and are instrumental in determining the contents ofa bundle.

Core Foundation keys use the prefix CF to distinguish them from other keys. For more information about CoreFoundation, see Core Foundation Framework Reference .

Key SummaryTable 1 contains an alphabetical listing of Core Foundation keys, the corresponding name for that key in theXcode property list editor, a high-level description of each key, and the platforms on which you use it. Detailedinformation about each key is available in later sections.

Table 1 Summary of Core Foundation keys

AvailabilitySummaryXcode nameKey

Mac OS XThe bundle’s initial HTML help file. See“CFAppleHelpAnchor” (page 20) for details.

"Help file”CFAppleHelpAnchor

iOS, MacOS X

Used by Foundation tools to retrievelocalized resources from frameworks. See“CFBundleAllowMixedLocalizations” (page20) for details.

"Localizedresources canbe mixed”

CFBundleAllowMixed-Localizations

iOS, MacOS X

(Recommended) The native region for thebundle. Usually corresponds to the nativelanguage of the author. See“CFBundleDevelopmentRegion” (page 20)for details.

“Localizationnativedevelopmentregion”

CFBundleDevelopment-Region

iOS, MacOS X

(Recommended, Localizable) The actualname of the bundle. See“CFBundleDisplayName” (page 21) fordetails.

“Bundle displayname”

CFBundleDisplayName

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

17

Core Foundation Keys

Page 18: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

iOS, MacOS X

An array of dictionaries describing thedocument types supported by the bundle.See “CFBundleDocumentTypes” (page 21)for details.

"Documenttypes”

CFBundleDocumentTypes

iOS, MacOS X

(Recommended) Name of the bundle’sexecutable file. See“CFBundleExecutable” (page 29) for details.

"Executablefile”

CFBundleExecutable

Mac OS XThe name of the folder containing thebundle’s help files. See“CFBundleHelpBookFolder” (page 30) fordetails.

"Help Bookdirectoryname”

CFBundleHelpBookFolder

Mac OS XThe name of the help file to display whenHelp Viewer is launched for the bundle. See“CFBundleHelpBookName” (page 30) fordetails.

"Help Bookidentifier”

CFBundleHelpBookName

iOS, MacOS X

A legacy way to specify the application’sicon. Use the “CFBundleIcons” (page 31) or“CFBundleIconFiles” (page 31) keys instead.See “CFBundleIconFile” (page 30) for details.

"Icon file”CFBundleIconFile

iOS 3.2 andlater

A top-level key for specifying the file namesof the bundle’s icon image files. See“CFBundleIconFiles” (page 31) for details.

See also “CFBundleIcons” (page 31) as analternative to this key.

"Icon files”CFBundleIconFiles

iOS 5.0 andlater

File names of the bundle’s icon image files.See “CFBundleIconFiles” (page 31) fordetails.

NoneCFBundleIcons

iOS, MacOS X

(Recommended) An identifier string thatspecifies the application type of the bundle.The string should be in reverse DNS formatusing only the Roman alphabet in upperand lower case (A–Z, a–z), the dot (“.”), andthe hyphen (“-”). See“CFBundleIdentifier” (page 34) for details.

"Bundleidentifier”

CFBundleIdentifier

Core Foundation KeysKey Summary

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

18

Page 19: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

iOS, MacOS X

(Recommended) Version information for theInfo.plist format. See“CFBundleInfoDictionaryVersion” (page 34)for details.

"InfoDictionaryversion”

CFBundleInfo-DictionaryVersion

iOS, MacOS X

Contains localization information for anapplication that handles its own localizedresources. See“CFBundleLocalizations” (page 34) fordetails.

“Localizations”CFBundleLocalizations

iOS, MacOS X

(Recommended, Localizable) The shortdisplay name of the bundle. See“CFBundleName” (page 35) for details.

"Bundle name”CFBundleName

iOS, MacOS X

The four-letter code identifying the bundletype. See “CFBundlePackageType” (page35) for details.

"Bundle OSType code”

CFBundlePackageType

iOS, MacOS X

(Localizable) The release-version-numberstring for the bundle. See“CFBundleShortVersionString” (page 35) fordetails.

"Bundleversions string,short”

CFBundleShortVersion-String

iOS, MacOS X

The four-letter code identifying the bundlecreator. See “CFBundleSignature” (page 35)for details.

"Bundle creatorOS Type code”

CFBundleSignature

iOS, MacOS X

An array of dictionaries describing the URLschemes supported by the bundle. See“CFBundleURLTypes” (page 36) for details.

“URL types”CFBundleURLTypes

iOS, MacOS X

(Recommended) The build-version-numberstring for the bundle. See“CFBundleVersion” (page 37) for details.

"Bundleversion”

CFBundleVersion

Mac OS XIf YES, register the plug-in dynamically;otherwise, register it statically. See“CFPlugInDynamicRegistration” (page 37)for details.

"Plug-in shouldbe registereddynamically”

CFPlugInDynamic-Registration

Mac OS XThe name of the custom, dynamicregistration function. See“CFPlugInDynamicRegisterFunction” (page37) for details.

Plug-indynamicregistrationfunction name”

CFPlugInDynamic-RegistrationFunction

Core Foundation KeysKey Summary

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

19

Page 20: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

Mac OS XFor static registration, this dictionarycontains a list of UUIDs with matchingfunction names. See“CFPlugInFactories” (page 38) for details.

"Plug-in factoryinterfaces”

CFPlugInFactories

Mac OS XFor static registration, the list of UUIDs“CFPlugInTypes” (page 38) for details.

"Plug-in types”CFPlugInTypes

Mac OS XThe name of the custom function to callwhen it’s time to unload the plug-in codefrom memory. See“CFPlugInUnloadFunction” (page 38) fordetails.

"Plug-in unloadfunction name”

CFPlugInUnloadFunction

CFAppleHelpAnchorCFAppleHelpAnchor (String - Mac OS X) identifies the name of the bundle’s initial HTML help file, minusthe .html or .htm extension. This file must be located in the bundle’s localized resource directories or, if thehelp is not localized, directly under the Resources directory.

CFBundleAllowMixedLocalizationsCFBundleAllowMixedLocalizations (Boolean - iOS, Mac OS X) specifies whether the bundle supportsthe retrieval of localized strings from frameworks. This key is used primarily by Foundation tools that link toother system frameworks and want to retrieve localized resources from those frameworks.

CFBundleDevelopmentRegionCFBundleDevelopmentRegion (String - iOS, Mac OS X) specifies the native region for the bundle. This keycontains 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 theuser’s preferred region or language.

Core Foundation KeysCFAppleHelpAnchor

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

20

Page 21: In Fop List Key Reference

CFBundleDisplayNameCFBundleDisplayName (String - iOS, Mac OS X) specifies the display name of the bundle. If you supportlocalized names for your bundle, include this key in both your information property list file and in theInfoPlist.strings files of your language subdirectories. If you localize this key, you should also include alocalized 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 thiskey does not affect the display of the bundle name but does incur a performance penalty to search for localizedversions of this key.

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

For more information about display names in Mac OS X, see File System Programming Guide .

CFBundleDocumentTypesCFBundleDocumentTypes (Array - iOS, Mac OS X) contains an array of dictionaries that associate one ormore document types with your application. Each dictionary is called a type-definition dictionary and containskeys used to define the document type. Table 2 lists the keys that are supported in these dictionaries. Foradditional information about specifying the types your application supports, see “Storing Document Types

Information in the Application's Property List”.

Core Foundation KeysCFBundleDisplayName

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

21

Page 22: In Fop List Key Reference

Table 2 Keys for type-definition dictionaries

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key contains an arrayof strings. Each stringcontains a filenameextension (minus theleading period) to map tothis document type. Toopen documents with anyextension, specify anextension with a singleasterisk “*”. (In Mac OS Xv10.4, this key is ignoredif theLSItemContentTypeskey is present.)Deprecated in Mac OS Xv10.5.

Array"DocumentExtensions”

CFBundleTypeExtensions

Mac OS XThis key contains a stringwith the name of the iconfile (.icns) to associatewith this Mac OS Xdocument type. For moreinformation aboutspecifying documenticons, see “DocumentIcons” (page 28).

String"Icon FileName”

CFBundleTypeIconFile

iOSAn array of stringscontaining the names ofthe image files to use forthe document icon in iOS.For more informationabout specifyingdocument icons, see“Document Icons” (page28).

ArrayNoneCFBundleTypeIconFiles

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

22

Page 23: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XContains an array ofstrings. Each stringcontains the MIME typename you want to map tothis document type. (InMac OS X v10.4, this key isignored if theLSItemContentTypeskey is present.)Deprecated in Mac OS Xv10.5.

Array"DocumentMIME types”

CFBundleTypeMIMETypes

iOS, MacOS X

This key contains theabstract name for thedocument type and isused to refer to the type.This key is required andcan be localized byincluding it in anInfoPlist.stringsfiles. This value is the mainway to refer to adocument type. If you areconcerned about this keybeing unique, you shouldconsider using a uniformtype identifier (UTI) for thisstring instead. If the typeis a common Clipboardtype supported by thesystem, you can use oneof the standard typeslisted in theNSPasteboard classdescription.

String"DocumentType Name”

CFBundleTypeName

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

23

Page 24: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key contains an arrayof strings. Each stringcontains a four-letter typecode that maps to thisdocument type. To opendocuments of any type,include four asteriskcharacters (****) as thetype code. These codes areequivalent to the legacytype codes used by MacOS 9. (In Mac OS X v10.4,this key is ignored if theLSItemContentTypeskey is present.)Deprecated in Mac OS Xv10.5.

Array"DocumentOS Types”

CFBundleTypeOSTypes

Mac OS XThis key specifies theapplication’s role withrespect to the type. Thevalue can be Editor,Viewer, Shell, or None.This key is required.

String"Role”CFBundleTypeRole

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

24

Page 25: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

iOS, MacOS X

This key contains an arrayof strings. Each stringcontains a UTI defining asupported file type. TheUTI string must be spelledout explicitly, as opposedto using one of theconstants defined byLaunch Services. Forexample, to support PNGfiles, you would includethe string “public.png“in the array. When usingthis key, also add theNSExportableTypes keywith the appropriateentries. In Mac OS X v10.5and later, this key (whenpresent) takes precedenceover these type-identifierkeys: CFBundleType-Extensions,CFBundleType-MIMETypes,CFBundleTypeOSTypes.

Array"DocumentContent TypeUTIs”

LSItemContentTypes

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

25

Page 26: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

iOS, MacOS X

Determines how LaunchServices ranks thisapplication among theapplications that declarethemselves editors orviewers of files of thistype. The possible valuesare: Owner (thisapplication is the creatorof files of this type),Alternate (thisapplication is a secondaryviewer of files of this type),None (this applicationmust never be used toopen files of this type, butit accepts drops of files ofthis type), Default(default; this applicationdoesn’t accept drops offiles of this type). LaunchServices uses the value ofLSHandlerRank todetermine the applicationto use to open files of thistype. The order ofprecedence is: Owner,Alternate, None. Thiskey is available in Mac OSX v10.5 and later.

String"Handlerrank”

LSHandlerRank

Mac OS XSpecifies whether thedocument is distributed asa bundle. If set to true, thebundle directory is treatedas a file. (In Mac OS X v10.4and later, this key isignored if theLSItemContentTypeskey is present.)

Boolean"Document isa package orbundle”

LSTypeIsPackage

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

26

Page 27: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key specifies thename of the NSDocumentsubclass used toinstantiate instances ofthis document. This key isused by Cocoaapplications only.

String"CocoaNSDocumentClass”

NSDocumentClass

Mac OS XThis key specifies an arrayof strings. Each stringcontains the name ofanother document type,that is, the value of aCFBundleTypeNameproperty. This valuerepresents another dataformat to which thisdocument can export itscontent. This key is usedby Cocoa applicationsonly. Deprecated in MacOS X v10.5.

Array"ExportableAs DocumentType Names”

NSExportableAs

Mac OS XThis key specifies an arraystrings. Each string shouldcontain a UTI defining asupported file type towhich this document canexport its content. EachUTI string must be spelledout explicitly, as opposedto using one of theconstants defined byLaunch Services. Forexample, to support PNGfiles, you would includethe string “public.png“in the array. This key isused by Cocoaapplications only.Available in Mac OS Xv10.5 and later.

ArrayNoneNSExportableTypes

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

27

Page 28: In Fop List Key Reference

The way you specify icon files in Mac OS X and iOS is different because of the supported file formats on eachplatform. In iOS, each icon resource file is typically a PNG file that contains only one image. Therefore, it isnecessary to specify different image files for different icon sizes. However, when specifying icons in Mac OS X,you use an icon file (with extension .icns), which is capable of storing the icon at several different resolutions.

This key is supported in iOS 3.2 and later and all versions of Mac OS X. For detailed information about UTIs,see Uniform Type Identifiers Overview .

Document RolesAn application can take one of the following roles for any given document type:

● Editor. The application can read, manipulate, and save the type.

● Viewer. The application can read and present data of that type.

● Shell. The application provides runtime services for other processes—for example, a Java applet viewer.The name of the document is the name of the hosted process (instead of the name of the application),and a new process is created for each document opened.

● None. The application does not understand the data, but is just declaring information about the type (forexample, the Finder declaring an icon for fonts).

The role you choose applies to all of the concrete formats associated with the document or Clipboard type.For example, the Safari application associates itself as a viewer for documents with the “.html”, “.htm”, “shtml,or “jhtml” filename extensions. Each of these extensions represents a concrete type of document that falls intothe overall category of HTML documents. This same document can also support MIME types and legacy 4-byteOS types.

Document IconsIn iOS, the CFBundleTypeIconFiles key contains an array of strings with the names of the image files touse for the document icon. Table 3 lists the icon sizes you can include for each device type. You can name theimage files however you want but the file names in your Info.plist file must match the image resourcefilenames exactly. (For iPhone and iPod touch, the usable area of your icon is actually much smaller.) For moreinformation on how to create these icons, see iOS Human Interface Guidelines .

Table 3 Document icon sizes for iOS

SizesDevice

64 x 64 pixels

320 x 320 pixels

iPad

Core Foundation KeysCFBundleDocumentTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

28

Page 29: In Fop List Key Reference

SizesDevice

22 x 29 pixels

44 x 58 pixels (high resolution)

iPhone and iPod touch

In Mac OS X, the CFBundleTypeIconFile key contains the name of an icon resource file with the documenticon. An icon resource file contains multiple images, each representing the same document icon at differentresolutions. If you omit the filename extension, the system looks for your file with the extension .icns. Youcan create icon resource files using the Icon Composer application that comes with Xcode Tools.

Recommended KeysThe entry for each document type should contain the following keys:

● CFBundleTypeIconFile

● CFBundleTypeName

● CFBundleTypeRole

In addition to these keys, it must contain at least one of the following keys:

● LSItemContentTypes

● CFBundleTypeExtensions

● CFBundleTypeMIMETypes

● CFBundleTypeOSTypes

If you do not specify at least one of these keys, no document types are bound to the type-name specifier. Youmay use all three keys when binding your document type, if you so choose. In Mac OS X v10.4 and later, if youspecify the LSItemContentTypes key, the other keys are ignored. You can continue to include the otherkeys for compatibility with older versions of the system, however.

CFBundleExecutableCFBundleExecutable (String - iOS, Mac OS X) identifies the name of the bundle’s main executable file. Foran application, this is the application executable. For a loadable bundle, it is the binary that will be loadeddynamically by the bundle. For a framework, it is the shared library for the framework. Xcode automaticallyadds this key to the information property list file of appropriate projects.

Core Foundation KeysCFBundleExecutable

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

29

Page 30: In Fop List Key Reference

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

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

CFBundleHelpBookFolderCFBundleHelpBookFolder (String - Mac OS X) identifies the folder containing the bundle’s help files. Helpis usually localized to a specific language, so the folder specified by this key represents the folder name insidethe .lproj directory for the selected language.

CFBundleHelpBookNameCFBundleHelpBookName (String - Mac OS X) identifies the main help page for your application. This keyidentifies the name of the Help page, which may not correspond to the name of the HTML file. The Help pagename is specified in the CONTENT attribute of the help file’s META tag.

CFBundleIconFileCFBundleIconFile (String - iOS, Mac OS X) identifies the file containing the icon for the bundle. Thefilename you specify does not need to include the extension, although it may. The system looks for the iconfile in the main resources directory of the bundle.

If your Mac OS X application uses a custom icon, you must specify this property. If you do not specify thisproperty, the system (and other applications) display your bundle with a default icon.

Core Foundation KeysCFBundleHelpBookFolder

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

30

Page 31: In Fop List Key Reference

Note If you are writing an iOS application, you should prefer the use of the “CFBundleIconFiles” (page31) key over this one.

CFBundleIconFilesCFBundleIconFiles (Array - iOS) contains an array of strings identifying the icon files for the bundle. (It isrecommended that you always create icon files using the PNG format.) When specifying your icon filenames,it is best to omit any filename extensions. Omitting the filename extension lets the system automatically detecthigh-resolution (@2x) versions of your image files using the standard-resolution image filename. If you includefilename extensions, you must specify all image files (including the high-resolution variants) explicitly. Thesystem looks for the icon files in the main resources directory of the bundle. If present, the values in this keytake precedence over the value in the “CFBundleIconFile” (page 30) key.

This key is supported in iOS 3.2 and later only and an application may have differently sized icons to supportdifferent types of devices and different screen resolutions. In other words, an application icon is typically 57 x57 pixels on iPhone or iPod touch but is 72 x 72 pixels on iPad. Icons at other sizes may also be included. Theorder of the items in this array does not matter. The system automatically chooses the most appropriatelysized icon based on the usage and the underlying device type.

For a list of the icons, including their sizes, that you can include in your application bundle, see the section onapplication icons in “Advanced App Tricks” in iOS App Programming Guide . For information about how to createicons for your applications, see iOS Human Interface Guidelines .

CFBundleIconsCFBundleIcons (Dictionary - iOS) contains information about all of the icons used by the application. Thiskey allows you to group icons based on their intended usage and specify multiple icon files together withspecific keys for modifying the appearance of those icons. This dictionary can contain the following keys:

● CFBundlePrimaryIcon—This key identifies the icons for the home screen and Settings applications amongothers. The value for this key is a dictionary whose contents are described in “Contents of theCFBundlePrimaryIcon Dictionary” (page 32).

● UINewsstandIcon—This key identifies default icons to use for applications presented from Newsstand.The value for this key is a dictionary whose contents are described in “Contents of the UINewsstandIconDictionary” (page 33).

Core Foundation KeysCFBundleIconFiles

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

31

Page 32: In Fop List Key Reference

The CFBundleIcons key is supported in iOS 5.0 and later. You may combine this key with the“CFBundleIconFiles” (page 31) and “CFBundleIconFile” (page 30) keys but in iOS 5.0 and later, this key takesprecedence.

Contents of the CFBundlePrimaryIcon DictionaryThe value for the CFBundlePrimaryIcon key is a dictionary that identifies the icons associated with theapplication bundle. The icons in this dictionary are used to represent the application on the device’s Homescreen and in the Settings application. Table 4 lists the keys that you can include in this dictionary and theirvalues.

Table 4 Keys for the CFBundlePrimaryIcon dictionary

DescriptionValueKey

(Required) Each string in the array contains the name of an iconfile. You can include multiple icons of different sizes to supportiPhone, iPad, and universal applications.

For a list of the icons, including their sizes, that you can includein your application bundle, see the section on application iconsin “Advanced App Tricks” in iOS App Programming Guide . Forinformation about how to create icons for your applications, seeiOS Human Interface Guidelines .

Array ofstrings

CFBundleIconFiles

This key specifies whether the icon files already incorporate ashine effect. If your icons already incorporate this effect, includethe key and set its value to YES to prevent the system from addingthe same effect again. If you do not include this key, or set itsvalue to NO, the system applies a shine effect to the icon fileslisted in the CFBundleIconFiles key in this dictionary.

BooleanUIPrerenderedIcon

When specifying icon filenames, it is best to omit any filename extensions. Omitting the filename extensionlets the system automatically detect high-resolution (@2x) versions of your image files using thestandard-resolution image filename. If you include filename extensions, you must specify all image files(including the high-resolution variants) explicitly. The system looks for the icon files in the main resourcesdirectory of the bundle.

Core Foundation KeysCFBundleIcons

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

32

Page 33: In Fop List Key Reference

Contents of the UINewsstandIcon DictionaryThe value for the UINewsstandIcon key is a dictionary that identifies the default icons and style options touse for applications displayed in Newsstand. Table 5 lists the keys that you can include in this dictionary andtheir values.

Table 5 Keys for the UINewsstandIcon dictionary

DescriptionValueKey

(Required) Each string in the array contains the name of anicon file. You use this key to specify a set of default iconsfor your application when presented in the Newsstand. Thisicon is used when no cover art is available for a downloadedissue.

For a list of the icons, including their sizes, that you caninclude in your application bundle, see the section onapplication icons in “Advanced App Tricks” in iOS AppProgramming Guide . For information about how to createicons for your applications, see iOS Human InterfaceGuidelines .

Arrayofstrings

CFBundleIconFiles

This key provides information about how to stylize anyNewsstand art. The value of this key is one of the followingstrings:

UINewsstandBindingTypeMagazine

UINewsstandBindingTypeNewspaper

StringUINewsstandBindingType

This key provides information about how to stylize anyNewsstand art. The value of this key is one of the followingstrings:

UINewsstandBindingEdgeLeft

UINewsstandBindingEdgeRight

UINewsstandBindingEdgeBottom

StringUINewsstandBindingEdge

When specifying icon filenames, it is best to omit any filename extensions. Omitting the filename extensionlets the system automatically detect high-resolution (@2x) versions of your image files using thestandard-resolution image filename. If you include filename extensions, you must specify all image files(including the high-resolution variants) explicitly. The system looks for the icon files in the main resourcesdirectory of the bundle.

Core Foundation KeysCFBundleIcons

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

33

Page 34: In Fop List Key Reference

CFBundleIdentifierCFBundleIdentifier (String - iOS, Mac OS X) uniquely identifies the bundle. Each distinct application orbundle on the system must have a unique bundle ID. The system uses this string to identify your applicationin many ways. For example, the preferences system uses this string to identify the application for which a givenpreference applies; Launch Services uses the bundle identifier to locate an application capable of opening aparticular file, using the first application it finds with the given identifier; in iOS, the bundle identifier is usedin validating the application’s signature.

The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9),hyphen (-), and period (.) characters. The string should also be in reverse-DNS format. For example, if yourcompany’s domain is Ajax.com and you create an application named Hello, you could assign the stringcom.Ajax.Hello as your application’s bundle identifier.

Note Although formatted similarly to a UTI, the character set for a bundle identifier is more restrictive.

CFBundleInfoDictionaryVersionCFBundleInfoDictionaryVersion (String - iOS, Mac OS X) identifies the current version of the propertylist structure. This key exists to support future versioning of the information property list file format. Xcodegenerates this key automatically when you build a bundle and you should not change it manually. The valuefor this key is currently 6.0.

CFBundleLocalizationsCFBundleLocalizations (Array - iOS, Mac OS X) identifies the localizations handled manually by yourapplication. If your executable is unbundled or does not use the existing bundle localization mechanism, youcan 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 thesupported localization. See ““Language and Locale Designations”” in Internationalization Programming Topics inInternationalization Documentation for information on how to specify language designators.

Core Foundation KeysCFBundleIdentifier

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

34

Page 35: In Fop List Key Reference

CFBundleNameCFBundleName (String - iOS, Mac OS X) identifies the short name of the bundle. This name should be lessthan 16 characters long and be suitable for displaying in the menu bar and the application’s Info window. Youcan include this key in the InfoPlist.strings file of an appropriate .lproj subdirectory to provide localizedvalues for it. If you localize this key, you should also include the key “CFBundleDisplayName” (page 21).

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

All bundles should provide this key. However, if this key is not specified, the bundle routines use the bundleextension to determine the type, falling back to the BNDL type if the bundle extension is not recognized.

CFBundleShortVersionStringCFBundleShortVersionString (String - iOS, Mac OS X) specifies the release version number of thebundle, which identifies a released iteration of the application. The release version number is a string comprisedof three period-separated integers. The first integer represents major revisions to the application, such asrevisions that implement new features or major changes. The second integer denotes revisions that implementless prominent features. The third integer represents maintenance releases.

The value for this key differs from the value for “CFBundleVersion” (page 37), which identifies an iteration(released or unreleased) of the application. This key can be localized by including it in your InfoPlist.stringsfiles.

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

Core Foundation KeysCFBundleName

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

35

Page 36: In Fop List Key Reference

CFBundleURLTypesCFBundleURLTypes (Array - iOS, Mac OS X) contains an array of dictionaries, each of which describes theURL schemes (http, ftp, and so on) supported by the application. The purpose of this key is similar to thatof “CFBundleDocumentTypes” (page 21), but it describes URL schemes instead of document types. Eachdictionary entry corresponds to a single URL scheme. Table 6 lists the keys to use in each dictionary entry.

Table 6 Keys for CFBundleURLTypes dictionaries

PlatformsDescriptionTypeXcodename

Key

iOS, MacOS X

This key specifies theapplication’s role withrespect to the URL type. Thevalue can be Editor,Viewer, Shell, or None.This key is required.

String"DocumentRole”

CFBundleTypeRole

iOS, MacOS X

This key contains the nameof the icon image file (minusthe extension) to be used forthis URL type.

String"DocumentIcon FileName”

CFBundleURLIconFile

iOS, MacOS X

This key contains theabstract name for this URLtype. This is the main way torefer to a particular type. Toensure uniqueness, it isrecommended that you usea Java-package styleidentifier. This name is alsoused as a key in theInfoPlist.strings file toprovide the human-readableversion of the type name.

String"URLidentifier”

CFBundleURLName

Core Foundation KeysCFBundleURLTypes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

36

Page 37: In Fop List Key Reference

PlatformsDescriptionTypeXcodename

Key

iOS, MacOS X

This key contains an array ofstrings, each of whichidentifies a URL schemehandled by this type. Forexample, specifying the URLscheme feed makes otherapplications aware that thisapplication is capable ofviewing RSS content. Typesof URL schemes includehttp, ftp, mailto, and soon.

Array"URLSchemes”

CFBundleURLSchemes

CFBundleVersionCFBundleVersion (String - iOS, Mac OS X) specifies the build version number of the bundle, which identifiesan iteration (released or unreleased) of the bundle. This is a monotonically increased string, comprised of oneor more period-separated integers. This key is not localizable.

CFPlugInDynamicRegistrationCFPlugInDynamicRegistration (String - Mac OS X) specifies whether how host loads this plug-in. If thevalue 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” (page 38), and“CFPlugInTypes” (page 38) keys.

For information about registering plugins, see “Plug-in Registration” in Plug-ins .

CFPlugInDynamicRegisterFunctionCFPlugInDynamicRegisterFunction (String - Mac OS X) identifies the function to use when dynamicallyregistering a plug-in. Specify this key if you want to specify one of your own functions instead of implementthe default CFPlugInDynamicRegister function.

For information about registering plugins, see “Plug-in Registration” in Plug-ins .

Core Foundation KeysCFBundleVersion

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

37

Page 38: In Fop List Key Reference

CFPlugInFactoriesCFPlugInFactories (Dictionary - Mac OS X) is used for static plug-in registration. It contains a dictionaryidentifying 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 factoryfunction to call.

For information about registering plugins, see “Plug-in Registration” in Plug-ins .

CFPlugInTypesCFPlugInTypes (Dictionary - Mac OS X) is used for static plug-in registration. It contains a dictionaryidentifying one or more groups of interfaces supported by the plug-in. Each key in the dictionary is a universallyunique ID (UUID) representing the group of interfaces. The value for the key is an array of strings, each of whichcontains the UUID for a specific interface in the group. The UUIDs in the array corresponds to entries in the“CFPlugInFactories” (page 38) dictionary.

For information about registering plugins, see “Plug-in Registration” in Plug-ins .

CFPlugInUnloadFunctionCFPlugInUnloadFunction (String - Mac OS X) specifies the name of the function to call when it is timeto unload the plug-in code from memory. This function gives the plug-in an opportunity to clean up any datastructures it allocated.

For information about registering plugins, see “Plug-in Registration” in Plug-ins .

Core Foundation KeysCFPlugInFactories

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

38

Page 39: In Fop List Key Reference

Launch Services (part of the Core Services framework in Mac OS X) provides support for launching applicationsand matching document types to applications. As a result, the keys recognized by Launch Services allow youto specify the desired execution environment for your bundled code. (In iOS, Launch Services is a private APIbut is still used internally to coordinate the execution environment of iOS applications.)

Launch Services keys use the prefix LS to distinguish them from other keys. For more information about LaunchServices in Mac OS X, see Launch Services Programming Guide and Launch Services Reference .

Key SummaryTable 1 contains an alphabetical listing of Launch Services keys, the corresponding name for that key in theXcode property list editor, a high-level description of each key, and the platforms on which you use it. Detailedinformation about each key is available in later sections.

Table 1 Summary of Launch Services keys

AvailabilitySummaryXcode nameKey

Mac OS XContains a string with the UTI that categorizes theapplication for the App Store. See“LSApplicationCategoryType” (page 41) for details.

"ApplicationCategory”

LSApplication-CategoryType

Mac OS XContains an array of strings identifying thesupported code architectures and their preferredexecution priority. See“LSArchitecturePriority” (page 43) for details.

"Architecturepriority”

LSArchitecturePriority

Mac OS XSpecifies whether the application runs only in thebackground. (Mach-O applications only). See“LSBackgroundOnly” (page 44) for details.

"Application isbackgroundonly”

LSBackgroundOnly

Mac OS XContains a list of key/value pairs, representingenvironment variables and their values. See“LSEnvironment” (page 44) for details.

"Environmentvariables”

LSEnvironment

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

39

Launch Services Keys

Page 40: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

Mac OS XSpecifies whether the files this application createsare quarantined by default. See“LSFileQuarantineEnabled” (page 44).

"File quarantineenabled”

LSFileQuarantine-Enabled

Mac OS XSpecifies directories for which files should not beautomatically quarantined. See“LSFileQuarantineExcludedPathPatterns” (page44).

NoneLSFileQuarantine-ExcludedPathPatterns

Mac OS XSpecifies whether the application is notified whena child process dies. See“LSGetAppDiedEvents” (page 45) for details.

"Applicationshould get AppDied events”

LSGetAppDiedEvents

Mac OS XSpecifies the minimum version of Mac OS Xrequired for the application to run. See“LSMinimumSystemVersion” (page 45) for details.

"Minimumsystem version”

LSMinimumSystem-Version

Mac OS XSpecifies the minimum version of Mac OS Xrequired to run a given platform architecture. See“LSMinimumSystemVersionByArchitecture” (page45) for details.

"Minimumsystem versions,per-architecture”

LSMinimumSystem-VersionByArchitecture

Mac OS XSpecifies whether one user or multiple users canlaunch an application simultaneously. See“LSMultipleInstancesProhibited” (page 46) fordetails.

"Applicationprohibitsmultipleinstances”

LSMultipleInstances-Prohibited

iOSSpecifies whether the application is an iOSapplication. See “LSRequiresIPhoneOS” (page 46)for details.

"Applicationrequires iPhoneenvironment”

LSRequiresIPhoneOS

Mac OS XSpecifies whether the application must run nativelyon Intel-based Macintosh computers, as opposedto under Rosetta emulation. See“LSRequiresNativeExecution” (page 46) for details.

"Applicationrequires nativeenvironment”

LSRequiresNative-Execution

Mac OS XSpecifies whether the application is an agentapplication, that is, an application that should notappear in the Dock or Force Quit window. See“LSUIElement” (page 46) for details.

"Application isagent(UIElement)”

LSUIElement

Mac OS XSets the visibility of system UI elements when theapplication launches. See“LSUIPresentationMode” (page 47) for details.

"Application UIPresentationMode”

LSUIPresentationMode

Launch Services KeysKey Summary

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

40

Page 41: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

Mac OS XSpecifies whether an agent application orbackground-only application is visible to otherapplications in the Classic environment. See“LSVisibleInClassic” (page 47) for details.

"Application isvisible in Classic”

LSVisibleInClassic

iOSDo not use. Use “LSMinimumSystemVersion” (page45) instead.

"Minimumsystem version”

MinimumOSVersion

LSApplicationCategoryTypeLSApplicationCategoryType (String - Mac OS X) is a string that contains the UTI corresponding to theapplication’s type. The App Store uses this string to determine the appropriate categorization for the application.Table 2 lists the supported UTIs for applications.

Table 2 UTIs for application categories

UTICategory

public.app-category.businessBusiness

public.app-category.developer-toolsDeveloper Tools

public.app-category.educationEducation

public.app-category.entertainmentEntertainment

public.app-category.financeFinance

public.app-category.gamesGames

public.app-category.graphics-designGraphics & Design

public.app-category.healthcare-fitnessHealthcare & Fitness

public.app-category.lifestyleLifestyle

public.app-category.medicalMedical

public.app-category.musicMusic

public.app-category.newsNews

public.app-category.photographyPhotography

Launch Services KeysLSApplicationCategoryType

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

41

Page 42: In Fop List Key Reference

UTICategory

public.app-category.productivityProductivity

public.app-category.referenceReference

public.app-category.social-networkingSocial Networking

public.app-category.sportsSports

public.app-category.travelTravel

public.app-category.utilitiesUtilities

public.app-category.videoVideo

public.app-category.weatherWeather

Table 3 lists the UTIs that are specific to games.

Table 3 UTIs for game-specific categories

UTICategory

public.app-category.action-gamesAction Games

public.app-category.adventure-gamesAdventure Games

public.app-category.arcade-gamesArcade Games

public.app-category.board-gamesBoard Games

public.app-category.card-gamesCard Games

public.app-category.casino-gamesCasino Games

public.app-category.dice-gamesDice Games

public.app-category.educational-gamesEducational Games

public.app-category.family-gamesFamily Games

public.app-category.kids-gamesKids Games

public.app-category.music-gamesMusic Games

public.app-category.puzzle-gamesPuzzle Games

Launch Services KeysLSApplicationCategoryType

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

42

Page 43: In Fop List Key Reference

UTICategory

public.app-category.racing-gamesRacing Games

public.app-category.role-playing-gamesRole Playing Games

public.app-category.simulation-gamesSimulation Games

public.app-category.sports-gamesSports Games

public.app-category.strategy-gamesStrategy Games

public.app-category.trivia-gamesTrivia Games

public.app-category.word-gamesWord Games

LSArchitecturePriorityLSArchitecturePriority (Array - Mac OS X) is an array of strings that identifies the architectures thisapplication supports. The order of the strings in this array dictates the preferred execution priority for thearchitectures. The possible strings for this array are listed in Table 4.

Table 4 Execution architecture identifiers

DescriptionString

The 32-bit Intel architecture.i386

The 32-bit PowerPC architecture.ppc

The 64-bit Intel architecture.x86_64

The 64-bit PowerPC architecture.ppc64

if a PowerPC architecture appears before either of the Intel architectures, Mac OS X runs the executable underRosetta emulation on Intel-based Macintosh computers regardless by default. To force Mac OS X to use thecurrent platform’s native architecture, include the “LSRequiresNativeExecution” (page 46) key in your informationproperty list.

Launch Services KeysLSArchitecturePriority

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

43

Page 44: In Fop List Key Reference

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

LSEnvironmentLSEnvironment (Dictionary - Mac OS X) defines environment variables to be set before launching thisapplication. The names of the environment variables are the keys of the dictionary, with the values being thecorresponding 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 yourexecutable directly from the command line, these environment variables are not set.

LSFileQuarantineEnabledLSFileQuarantineEnabled (Boolean - Mac OS X) specifies whether files this application creates arequarantined by default.

DescriptionValue

Files created by this application are quarantined by default. When quarantining files, thesystem automatically associates the timestamp, application name, and the bundle identifierwith the quarantined file whenever possible. Your application can also get or set quarantineattributes as needed using Launch Services.

true

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

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

LSFileQuarantineExcludedPathPatternsLSFileQuarantineExcludedPathPatterns (Array - Mac OS X) contains an array of strings indicating thepaths for which you want to disable file quarantining. You can use this key to prevent file quarantines fromaffecting the performance of your application. Each string in the array is a shell-style path pattern, which means

Launch Services KeysLSBackgroundOnly

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

44

Page 45: In Fop List Key Reference

that special characters such as ~, *, and ? are automatically expanded according to the standard command-linerules. For example, a string of the form ~/Library/Caches/* would allow you to disable the quarantine forfiles created by your application in the user’s cache directory.

LSGetAppDiedEventsLSGetAppDiedEvents (Boolean - Mac OS X) indicates whether the operation system notifies this applicationwhen when one of its child process terminates. If you set the value of this key to YES, the system sends yourapplication an kAEApplicationDied Apple event for each child process as it terminates.

LSMinimumSystemVersionLSMinimumSystemVersion (String - Mac OS X) indicates the minimum version of Mac OS X required forthis application to run. This string must be of the form n .n .n where n is a number. The first number is themajor version number of the system. The second and third numbers are minor revision numbers. For example,to support Mac OS X v10.4 and later, you would set the value of this key to "10.4.0".

If the minimum system version is not available, Mac OS X tries to display an alert panel notifying the user ofthat fact.

LSMinimumSystemVersionByArchitectureLSMinimumSystemVersionByArchitecture (Dictionary - Mac OS X) specifies the earliest Mac OS Xversion for a set of architectures. This key contains a dictionary of key-value pairs. Each key corresponds to oneof the architectures associated with the “LSArchitecturePriority” (page 43) key. The value for each key is theminimum version of Mac OS X required for the application to run under that architecture. This string must beof the form n .n .n where n is a number. The first number is the major version number of the system. The secondand third numbers are minor revision numbers. For example, to support Mac OS X v10.4.9 and later, you wouldset 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 touse the corresponding architecture. This key applies only to the selection of an execution architecture and canbe used in conjunction with the “LSMinimumSystemVersion” (page 45) key, which specifies the overall minimumsystem version requirement for the application.

Launch Services KeysLSGetAppDiedEvents

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

45

Page 46: In Fop List Key Reference

LSMultipleInstancesProhibitedLSMultipleInstancesProhibited (Boolean - Mac OS X) indicates whether an application is prohibitedfrom running simultaneously in multiple user sessions. If true, the application runs in only one user session ata time. You can use this key to prevent resource conflicts that might arise by sharing an application acrossmultiple user sessions. For example, you might want to prevent users from accessing a custom USB devicewhen 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 inanother session is running the application, Launch Services returns akLSMultipleSessionsNotSupportedErr error. If you attempt to launch a separate instance of an applicationin the current session, it returns kLSMultipleInstancesProhibitedErr.

LSRequiresIPhoneOSLSRequiresIPhoneOS (Boolean - iOS) specifies whether the application can run only on iOS. If this key isset to YES, Launch Services allows the application to launch only when the host platform is iOS.

LSRequiresNativeExecutionLSRequiresNativeExecution (Boolean - Mac OS X) specifies whether to launch the application using thesubbinary for the current architecture. If this key is set to YES, Launch Services always runs the applicationusing the binary compiled for the current architecture. You can use this key to prevent a universal binary frombeing run under Rosetta emulation on an Intel-based Macintosh computer. For more information aboutconfiguring the execution architectures, see “LSArchitecturePriority” (page 43).

LSUIElementLSUIElement (String - Mac OS X) specifies whether the application runs as an agent application. If this keyis set to “1”, Launch Services runs the application as an agent application. Agent applications do not appearin the Dock or in the Force Quit window. Although they typically run as background applications, they cancome to the foreground to present a user interface if desired. A click on a window belonging to an agentapplication brings that application forward to handle events.

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

Launch Services KeysLSMultipleInstancesProhibited

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

46

Page 47: In Fop List Key Reference

LSUIPresentationModeLSUIPresentationMode (Number - Mac OS X) 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 elementssuch as the Dock and menu bar. Most modes affect only UI elements that appear in the content area of thescreen, that is, the area of the screen that does not include the menu bar. However, you can request that allUI elements be hidden as well.

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

DescriptionValue

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

0

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

1

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

2

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

3

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

4

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

Launch Services KeysLSUIPresentationMode

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

47

Page 48: In Fop List Key Reference

MinimumOSVersionMinimumOSVersion (String - iOS). When you build an iOS application, Xcode uses the iOS DeploymentTarget setting of the project to set the value for the MinimumOSVersion key. Do not specify this key yourselfin the Info.plist file; it is a system-written key. When you publish your application to the App Store, thestore indicates the iOS releases on which your application can run based on this key. It is equivalent to theLSMinimumSystemVersion key in Mac OS X.

Launch Services KeysMinimumOSVersion

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

48

Page 49: In Fop List Key Reference

Cocoa and Cocoa Touch are the environments used to define Objective-C based applications that run in Mac OSX and iOS respectively. The keys associated with the Cocoa environments provide support for Interface Buildernib files and provide support for other user-facing features vended by your bundle.

Cocoa keys use the prefix NS to distinguish them from other keys. For information about developing CocoaTouch applications for iOS, see iOS App Programming Guide . For information about developing Cocoaapplications for Mac OS X, see Cocoa Fundamentals Guide .

Key SummaryTable 1 contains an alphabetical listing of Cocoa keys, the corresponding name for that key in the Xcodeproperty list editor, a high-level description of each key, and the platforms on which you use it. Detailedinformation about each key is available in later sections.

Table 1 Summary of Cocoa keys

AvailabilitySummaryXcode nameKey

Mac OS XSpecifies whether AppleScript is enabled.See “NSAppleScriptEnabled” (page 51) fordetails.

"Scriptable”NSAppleScriptEnabled

Mac OS XSpecifies the name of application’s Docktile plug-in, if present. See“NSDockTilePlugIn” (page 51) for details.

"Dock Tile Pluginpath”

NSDockTilePlugIn

Mac OS X(Localizable) Specifies the copyright noticefor the bundle. See“NSHumanReadableCopyright” (page 51)for details.

"Copyright(human-readable)”

NSHumanReadable-Copyright

Mac OS XSpecifies whether the program requires arunning Java VM. See“NSJavaNeeded” (page 52) for details.

"Cocoa Javaapplication”

NSJavaNeeded

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

49

Cocoa Keys

Page 50: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

Mac OS XAn array of paths to classes whosecomponents are preceded by NSJavaRoot.See “NSJavaPath” (page 52) for details.

"Java classpaths”NSJavaPath

Mac OS XThe root directory containing the javaclasses. See “NSJavaRoot” (page 52) fordetails.

"Java rootdirectory”

NSJavaRoot

iOS, MacOS X

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

"Main nib file basename”

NSMainNibFile

Mac OS XThe type of Core Data persistent storeassociated with a persistent document type.See “NSPersistentStoreTypeKey” (page 52)for details.

"Core Datapersistent storetype”

NSPersistentStore-TypeKey

Mac OS XThe name of an image file resource used torepresent a preference pane in the SystemPreferences application. See“NSPrefPaneIconFile” (page 53) for details.

"Preference Paneicon file”

NSPrefPaneIconFile

Mac OS XThe name of a preference pane displayedbeneath the preference pane icon in theSystem Preferences application. See“NSPrefPaneIconLabel” (page 53) for details.

"Preference Paneicon label”

NSPrefPaneIconLabel

Mac OS XThe name of the bundle’s main class. See“NSPrincipalClass” (page 53) for details.

"Principal class”NSPrincipalClass

Mac OS XAn array of dictionaries specifying theservices provided by an application. See“NSServices” (page 53) for details.

"Services”NSServices

Mac OS X10.7 andlater

Specifies whether the application may bekilled to reclaim memory. See“NSSupportsAutomaticTermination” (page62) for details.

NoneNSSupportsAutomatic-Termination

Mac OS XSpecifies whether the application may bekilled to allow for faster shut down or logout operations. See“NSSupportsSuddenTermination” (page 63)for details.

NoneNSSupportsSudden-Termination

Cocoa KeysKey Summary

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

50

Page 51: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

iOS, MacOS X

Specifies the mobile document data thatthe application can view. See“NSUbiquitousDisplaySet” (page 63) fordetails.

NoneNSUbiquitousDisplay-Set

iOS 5.0 andlater, MacOS X 10.7and later

An array of dictionaries specifying theUTI-based types supported (and owned) bythe application. See“UTExportedTypeDeclarations” (page 63)for details.

“Exported TypeUTIs”

UTExportedType-Declarations

iOS, MacOS X

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

"Imported TypeUTIs”

UTImportedType-Declarations

NSAppleScriptEnabledNSAppleScriptEnabled (Boolean or String - Mac OS X). This key identifies whether the application isscriptable. Set the value of this key to true (when typed as Boolean) or “YES” (when typed as String) if yourapplication supports AppleScript.

NSDockTilePlugInNSDockTilePlugIn (String - Mac OS X). This key contains the name of a plug-in bundle with the.docktileplugin filename extension and residing in the application’s Contents/PlugIns directory. Thebundle must contain the Dock tile plug-in for the application. For information about creating a Dock tile plug-in,see Dock Tile Programming Guide .

NSHumanReadableCopyrightNSHumanReadableCopyright (String - Mac OS X). This key contains a string with the copyright notice forthe bundle; for example, © 2008, My Company. You can load this string and display it in an About dialogbox. This key can be localized by including it in your InfoPlist.strings files. This key replaces the obsoleteCFBundleGetInfoString key.

Cocoa KeysNSAppleScriptEnabled

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

51

Page 52: In Fop List Key Reference

NSJavaNeededNSJavaNeeded (Boolean or String - Mac OS X). This key specifies whether the Java VM must be loaded andstarted up prior to executing the bundle code. This key is required only for Cocoa Java applications to tell thesystem 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.

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

Deprecated in Mac OS X v10.5.

NSJavaRootNSJavaRoot (String - Mac OS X). This key contains a string identifying a directory. This directory representsthe root directory of the application’s Java class files.

NSMainNibFileNSMainNibFile (String - iOS, Mac OS X). This key contains a string with the name of the application’s mainnib file (minus the .nib extension). A nib file is an Interface Builder archive containing the description of auser interface along with any connections between the objects of that interface. The main nib file is automaticallyloaded when an application is launched.

This key is mutually exclusive with the “UIMainStoryboardFile” (page 74) key. You should include one of thekeys in your Info.plist file but not both.

NSPersistentStoreTypeKeyNSPersistentStoreTypeKey (String - Mac OS X). This key contains a string that specifies the type of CoreData persistent store associated with a document type (see “CFBundleDocumentTypes” (page 21)).

Cocoa KeysNSJavaNeeded

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

52

Page 53: In Fop List Key Reference

NSPrefPaneIconFileNSPrefPaneIconFile (String - Mac OS X). This key contains a string with the name of an image file (includingextension) 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 Preferencesapplication looks for the image file using the CFBundleIconFile key instead.

NSPrefPaneIconLabelNSPrefPaneIconLabel (String - Mac OS X). 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 splitlong names onto two lines by including a newline character (‘\n’) in the string. If this key is omitted, the SystemPreferences application gets the name from the CFBundleName key.

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

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

NSServicesNSServices (Array - Mac OS X). This key contains an array of dictionaries specifying the services providedby the application. Table 2 lists the keys for specifying a service:

Cocoa KeysNSPrefPaneIconFile

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

53

Page 54: In Fop List Key Reference

Table 2 Keys for NSServices dictionaries

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key specifies the nameof the port your applicationmonitors for incomingservice requests. Its valuedepends on how theservice provider applicationis registered. In most cases,this is the applicationname. For moreinformation, see ServicesImplementation Guide .

String"Incomingservice portname”

NSPortName

Mac OS XThis key specifies the nameof the instance method toinvoke for the service. InObjective-C, the instancemethod must be of theform messageName:userData:error:. InJava, the instance methodmust be of the formmessageName(NSPaste-Board,String).

String"Instancemethodname”

NSMessage

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

54

Page 55: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key specifies an arrayof strings. Each stringshould contain a UTIdefining a supported filetype. Only UTI types areallowed; pasteboard typesare not permitted. Tospecify pasteboard types,continue to use theNSSendTypes key.

By assigning a value to thiskey, your service declaresthat it can operate on fileswhose type conforms toone or more of the givenfile types. Your service willreceive a pasteboard fromwhich you can read fileURLs.

Available in Mac OS X v10.6and later. For informationon UTIs, see Uniform TypeIdentifiers Overview .

ArrayNoneNSSendFileTypes

Mac OS XThis key specifies anoptional array of data typenames that can be read bythe service. TheNSPasteboard classdescription lists severalcommon data types. Youmust include this key, theNSReturnTypes key, orboth.

In Mac OS X v10.5 andearlier, this key is required.In Mac OS X v10.6 and later,you should use theNSSendFileTypes keyinstead.

Array"Send Types”NSSendTypes

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

55

Page 56: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XThis key specifies adescription of your servicethat is suitable forpresentation to users. Thisdescription string may belong to give users adequateinformation about yourservice.

To localize the menu itemtext, create aServicesMenu.stringsfile for each localization inyour bundle. This stringsfile should contain this keyalong with the translateddescription string as itsvalue. For moreinformation about creatingstrings files, see ResourceProgramming Guide .

Available in Mac OS X v10.6and later.

StringNoneNSServiceDescription

Mac OS XThis key specifies adictionary with theconditions under whichyour service is madeavailable to the user.Alternatively, you canspecify an array ofdictionaries, each of whichcontains a set of conditionsfor enabling your service.

See the discussion after thistable for information aboutspecifying the value of thiskey. Available in Mac OS Xv10.6 and later.

Dictionaryor Array

NoneNSRequiredContext

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

56

Page 57: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XSpecifying a value of truefor this key prevents theservice from being invokedby a sandboxedapplication. You should setthe value to true if yourservice performs privilegedor potentially dangerousoperations that wouldallow a sandboxedapplication to escape itscontainment. For example,you should set it to true ifyour service executesarbitrary files or text stringsas scripts, reads or writesany file specified by a path,or retrieves the contents ofan arbitrary URL from thenetwork on behalf of theclient of the service.

The default value for thiskey is false. Available inMac OS X v10.7 and later.

BooleanNoneNSRestricted

Mac OS XThis key specifies an arrayof data type names thatcan be returned by theservice. TheNSPasteboard classdescription lists severalcommon data types. Youmust include this key, theNSSendTypes key, or both.

Array"ReturnTypes”

NSReturnTypes

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

57

Page 58: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

Mac OS XDictionary"Menu”NSMenuItem

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

58

Page 59: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

This key contains adictionary that specifies thetext to add to the Servicesmenu. The only key in thedictionary is calleddefault and its value isthe menu item text.

In Mac OS X v10.5 andearlier, menu items mustbe unique. You can ensurea unique name bycombining the applicationname with the commandname and separating themwith a slash character “/”.This effectively creates asubmenu for your services.For example, Mail/Sendwould appear in theServices menu as a menunamed Mail with an itemnamed Send.

Submenus are notsupported (or necessary) inMac OS X v10.6 and later. Ifyou specify a slashcharacter in Mac OS X v10.6and later, the slash and anytext preceding it arediscarded. Instead, serviceswith the same name aredisambiguated by addingthe application name inparenthesis after the menuitem text.

To localize the menu itemtext, create aServicesMenu.stringsfile for each localization inyour bundle. This stringsfile should contain thedefault key along withthe translated menu item

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

59

Page 60: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

text as its value. For moreinformation about creatingstrings files, see ResourceProgramming Guide .

Mac OS XThis key is optional andcontains a dictionary withthe keyboard equivalentused to invoke the servicemenu command. Similar toNSMenuItem, the only keyin the dictionary is calleddefault and its value is asingle character. Usersinvoke this keyboardequivalent by pressing theCommand modifier keyalong with the character.The character is casesensitive, so you can assigndifferent commands to theuppercase and lowercaseversions of a character. Tospecify the uppercasecharacter, the user mustpress the Shift key inaddition to the other keys.

Dictionary"Menu keyequivalent”

NSKeyEquivalent

Mac OS XThis key is an optionalstring that contains a valueof your choice.

String"User Data”NSUserData

Mac OS XThis key is an optionalnumerical string thatindicates the number ofmilliseconds Servicesshould wait for a responsefrom the applicationproviding a service when aresponse is required.

String"Timeoutvalue (inmilliseconds)”

NSTimeout

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

60

Page 61: In Fop List Key Reference

In Mac OS X v10.6 and later, the NSRequiredContext key may contain a dictionary or an array of dictionariesdescribing the conditions under which the service appears in the Services menu. If you specify a single dictionary,all of the conditions in that dictionary must be met for the service to appear. If you specify an array of dictionaries,all of the conditions in only one of those dictionaries must be met for the service to appear. Each dictionarymay contain one or more of the keys listed in Table 3. All keys in the dictionary are optional.

Table 3 Contents of the NSRequiredContext dictionary

PlatformDescriptionTypeXcodename

Key

Mac OSX

The value of this key is a string oran array of strings, each of whichcontains the bundle ID(CFBundleIdentifier key) ofan application. Your serviceappears only if the bundle ID ofthe current application matchesone of the specified values.

StringorArray

NoneNSApplicationIdentifier

Mac OSX

The value of this key is a string oran array of strings, each of whichcontains a standard four-letterscript tag, such as Latn or Cyrl.Your service appears only if thedominant script of the selectedtext matches one of the specifiedscript values.

StringorArray

NoneNSTextScript

Mac OSX

The value of this key is a string oran array of strings, each of whichcontains a BCP-47 tag indicatingthe language of the desired text.Your service appears if the overalllanguage of the selected textmatches one of the specifiedvalues.

Matching is performed using aprefix-matching scheme. Forexample, specifying the value enmatches text whose full BCP-47code is en-US, en-GB, or en-AU.

StringorArray

NoneNSTextLanguage

Cocoa KeysNSServices

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

61

Page 62: In Fop List Key Reference

PlatformDescriptionTypeXcodename

Key

Mac OSX

The value of this key is an integerindicating the maximum numberof selected words on which theservice can operate. For example,a service to look up a stock byticker symbol might have a valueof 1 because ticker symbolscannot contain spaces.

NumberNoneNSWordLimit

Mac OSX

The value of this key is a string oran array of strings, each of whichcontains one of the followingvalues: URL, Date, Address,Email, or FilePath. The serviceis displayed only if the selectedtext contains data of acorresponding type. For example,if the selected text contained anhttp-based link, the servicewould be displayed if the value ofthis key were set to URL.

Note that all of the selected textis provided to the service-vendingapplication, not just the partsfound to contain the given datatypes.

StringorArray

NoneNSTextContext

For additional information about implementing services in your application, see Services ImplementationGuide .

NSSupportsAutomaticTerminationNSSupportsAutomaticTermination (Boolean - Mac OS X). This key contains a boolean that indicateswhether the application supports automatic termination in Mac OS X 10.7 and later. Automatic terminationallows an application that is running to be terminated automatically by the system when certain conditionsapply. Primarily, the application can be terminated when it is hidden or does not have any visible windowsand is not currently being used. The system may terminate such an application in order to reclaim the memoryused by the application.

Cocoa KeysNSSupportsAutomaticTermination

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

62

Page 63: In Fop List Key Reference

An application may programmatically disable and reenable automatic termination support using thedisableAutomaticTermination and enableAutomaticTerminationmethods of NSProcessInfo. Theapplication might do this to prevent being terminated during a critical operation.

NSSupportsSuddenTerminationNSSupportsSuddenTermination (Boolean - Mac OS X). This key contains a boolean that indicates whetherthe system may kill the application outright in order to log out or shut down more quickly. You use this keyto specify whether the application can be killed immediately after launch. The application can still enable ordisable sudden termination at runtime using the methods of the NSProcessInfo class. The default value ofthis key is NO.

NSUbiquitousDisplaySetNSUbiquitousDisplaySet (String - iOS, Mac OS X) contains the identifier string that you configured iniTunesConnect for managing your application’s storage. The assigned display set determines from whichmobile data folder (in the user’s mobile account) the application retrieves its data files.

If you create multiple applications, you can use the same display set for your applications or assign differentdisplay sets to each. For example, if you create a lite version of your application, in addition to a full-featuredversion, you might use the same display set for both versions because they create and use the same basic datafiles. Each application should recognize the file types stored in its mobile data folder and be able to open them.

UTExportedTypeDeclarationsUTExportedTypeDeclarations (Array - iOS, Mac OS X) declares the uniform type identifiers (UTIs) ownedand exported by the application. You use this key to declare your application’s custom data formats andassociate 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 onversions of Mac OS X prior to version 10.5.

The value for the UTExportedTypeDeclarations key is an array of dictionaries. Each dictionary contains aset of key-value pairs identifying the attributes of the type declaration. Table 4 lists the keys you can includein this dictionary along with the typical values they contain. These keys can also be included in array ofdictionaries associated with the “UTImportedTypeDeclarations” (page 65) key.

Cocoa KeysNSSupportsSuddenTermination

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

63

Page 64: In Fop List Key Reference

Table 4 UTI property list keys

PlatformsDescriptionTypeXcode nameKey

iOS, MacOS X

(Required) Contains an array of strings. Eachstring identifies a UTI to which this typeconforms. These keys represent the parentcategories to which your custom file formatbelongs. For example, a JPEG file type conformsto the public.image and public.datatypes. For a list of high-level types, seeUniformType Identifiers Overview .

Array"Conforms toUTIs”

UTTypeConformsTo

iOS, MacOS X

A user-readable description of this type. Thestring associated with this key may be localizedin your bundle’s InfoPlist.strings files.

String"Description”UTTypeDescription

Mac OS XThe name of the bundle icon resource toassociate with this UTI. You should include thiskey only for types that your application exports.This file should have a .icns filenameextension. You can create this file using theIcon Composer application that comes withXcode Tools.

String"Icon filename”

UTTypeIconFile

iOS, MacOS X

(Required) The UTI you want to assign to thetype. This string uses the reverse-DNS format,whereby more generic types come first. Forexample, a custom format for your companywould have the formcom.<yourcompany>.<type>.<subtype>.

String"Identifier”UTTypeIdentifier

Mac OS XThe URL for a reference document thatdescribes this type.

String"ReferenceURL”

UTTypeReferenceURL

iOSThe name of the 64 x 64 pixel icon resource file(located in the application’s bundle) toassociate with this UTI. You should include thiskey only for types that your application exports.

StringNoneUTTypeSize64IconFile

iOSThe name of the 320 x 320 pixel icon resourcefile (located in the application’s bundle) toassociate with this UTI. You should include thiskey only for types that your application exports.

StringNoneUTTypeSize320IconFile

Cocoa KeysUTExportedTypeDeclarations

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

64

Page 65: In Fop List Key Reference

PlatformsDescriptionTypeXcode nameKey

iOS, MacOS X

(Required) A dictionary defining one or moreequivalent type identifiers. The key-value pairslisted in this dictionary identify the filenameextensions, MIME types, OSType codes, andpasteboard types that correspond to this type.For example, to specify filename extensions,you would use the keypublic.filename-extension and associateit with an array of strings containing the actualextensions. For more information about thekeys for this dictionary, see Uniform TypeIdentifiers Overview .

Dictionary"EquivalentTypes”

UTTypeTagSpecification

The way you specify icon files in Mac OS X and iOS is different because of the supported file formats on eachplatform. In iOS, each icon resource file is typically a PNG file that contains only one image. Therefore, it isnecessary to specify different image files for different icon sizes. However, when specifying icons in Mac OS X,you use an icon file (with extension .icns), which is capable of storing the icon at several different resolutions.

This key is supported in iOS 3.2 and later and Mac OS X 10.5 and later. For more information about UTIs andtheir use, see Uniform Type Identifiers Overview .

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

The value for this key is an array of dictionaries and uses the same keys as those for the“UTExportedTypeDeclarations” (page 63) key. For a list of these keys, see Table 4 (page 64).

This key is supported in iOS 3.2 and later and Mac OS X 10.5 and later. For more information about UTIs andtheir use, see Uniform Type Identifiers Overview .

Cocoa KeysUTImportedTypeDeclarations

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

65

Page 66: In Fop List Key Reference

The keys in this chapter define assorted functionality related to Mac OS X bundles.

Key SummaryTable 1 contains an alphabetical listing of Mac OS X–specific keys, the corresponding name for that key in theXcode property list editor, a high-level description of each key, and the platforms on which you use it. Detailedinformation about each key is available in later sections.

Table 1 Summary of Mac OS X keys

AvailabilitySummaryXcode nameKey

Mac OS XA URL-based path to the files you wantto install. See “APInstallerURL” (page67) for details.

"Installationdirectory basefile URL”

APInstallerURL

Mac OS XAn array of dictionaries describing thefiles or directories that can be installed.See “APFiles” (page 67) for details.

"Installationfiles”

APFiles

Mac OS XThe path to a single font file ordirectory of font files in the bundle’sResources directory. See“ATSApplicationFontsPath” (page 68)for details.

"Applicationfonts resourcepath”

ATSApplicationFonts-Path

Mac OS XIf true, Core Services routines map thebundle’s resource files into memoryinstead of reading them. See“CSResourcesFileMapped” (page 68)for details.

"Resourcesshould befile-mapped”

CSResourcesFile-Mapped

Mac OS X10.5 andlater

Specifies whether the application usesQuartz GL. See “QuartzGLEnable” (page68) for details.

NoneQuartzGLEnable

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

66

Mac OS X Keys

Page 67: In Fop List Key Reference

APInstallerURLAPInstallerURL (String - Mac OS X) identifies the base path to the files you want to install. You mustspecify this path using the form file://localhost/path/. All installed files must reside within this directory.

APFilesAPFiles (Array - Mac OS X) 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 multipleitems, nest the APFiles key inside itself to specify files inside of a directory. Table 2 lists the keys for specifyinginformation about a single file or directory.

Table 2 Keys for APFiles dictionary

PlatformDescriptionTypeXcode nameKey

Mac OSX

A short description of theitem to display in theFinder’s Info window

String"Install filedescriptiontext”

APFileDescriptionKey

Mac OSX

If “Yes” the item is shownwith a folder icon in theInfo panel; otherwise, it isshown with a documenticon

String"Displaywith foldericon”

APDisplayedAsContainer

Mac OSX

Where to install thecomponent as a pathrelative to the applicationbundle

String"Filedestinationpath”

APFileDestinationPath

Mac OSX

The name of the file ordirectory

String"Install filename”

APFileName

Mac OSX

The path to thecomponent in theapplication packagerelative to theAPInstallerURL path.

String"Install filesource path”

APFileSourcePath

Mac OSX

The action to take withthe component: “Copy” or“Open”

String"File installaction”

APInstallAction

Mac OS X KeysAPInstallerURL

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

67

Page 68: In Fop List Key Reference

ATSApplicationFontsPathATSApplicationFontsPath (String - Mac OS X) identifies the location of a font file or directory of fontsin the bundle’s Resources directory. If present, Mac OS X activates the fonts at the specified path for use bythe bundled application. The fonts are activated only for the bundled application and not for the system as awhole. 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.

CSResourcesFileMappedCSResourcesFileMapped (Boolean - Mac OS X) specifies whether to map this application’s resource filesinto memory. Otherwise, they are read into memory normally. File mapping can improve performance insituations where you are frequently accessing a small number of resources. However, resources are mappedinto memory read-only and cannot be modified.

QuartzGLEnableQuartzGLEnable (Boolean - Mac OS X) specifies whether this application uses Quartz GL.

DescriptionValue

Turn on Quartz GL for the application's windows. (This works only when the computer hasat least 1GM of RAM).

true

Disable Quartz GL. Quartz GL will not be available, even after using [<NSWindow>setPreferredBackingLocation:].

false

Quartz GL is not supported on computers with more than one video card installed.

To turn on Quartz QL for testing use the Quartz Debug application, located in <Xcode>/Applications.

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

Mac OS X KeysATSApplicationFontsPath

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

68

Page 69: In Fop List Key Reference

The UIKit framework provides the infrastructure you need for creating iOS applications. You use the keysassociated with this framework to configure the appearance of your application at launch time and the behaviorof your application once it is running.

UIKit keys use the prefix UI to distinguish them from other keys. For more information about using UIKit tocreate and configure iOS applications, see iOS App Programming Guide .

Key SummaryTable 1 contains an alphabetical listing of UIKit keys, the corresponding name for that key in the Xcode propertylist editor, a high-level description of each key, and the platforms on which you use it. Detailed informationabout each key is available in later sections.

Table 1 Summary of UIKit keys

AvailabilitySummaryXcode nameKey

iOS 3.2 andlater

Specifies a list of application-specific fonts. See“UIAppFonts” (page 71) for details.

"Fontsprovided byapplication”

UIAppFonts

iOS 4.0 andlater

Specifies whether the application terminatesinstead of run in the background. See“UIApplicationExitsOnSuspend” (page 71) fordetails.

"Applicationdoes not runinbackground”

UIApplicationExits-OnSuspend

iOS 4.0 andlater

Specifies that the application needs to continuerunning in the background. See“UIBackgroundModes” (page 72) for details.

"Requiredbackgroundmodes”

UIBackgroundModes

iOS 3.2 andlater

Inserted automatically by Xcode to define thetarget device of the application. See“UIDeviceFamily” (page 73) for details.

"Targeteddevicefamily”

UIDeviceFamily

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

69

UIKit Keys

Page 70: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

iOS 3.2 andlater

Specifies whether the application shares files withthe user’s computer through iTunes. See“UIFileSharingEnabled” (page 73) for details.

"ApplicationsupportsiTunes filesharing”

UIFileSharingEnabled

iOSSpecifies the initial orientation of the application’suser interface. See “UIInterfaceOrientation” (page73) for details.

“Initialinterfaceorientation”

UIInterfaceOrientation

iOS 3.2 andlater

Specifies the name of the application’s launchimage. See “UIMainStoryboardFile” (page 74) fordetails.

"Launchimage”

UILaunchImageFile

iOS 5.0 andlater

Specifies the name of the application’s storyboardresource file. See “UIMainStoryboardFile” (page74) for details.

NoneUIMainStoryboardFile

iOS 5.0 andlater

Specifies whether the application presents itscontent in Newsstand. See“UINewsstandApp” (page 74) for details.

NoneUINewsstandApp

iOSSpecifies whether the application’s icon alreadyincludes a shine effect. See“UIPrerenderedIcon” (page 75) for details.

"Icon alreadyincludesgloss effects”

UIPrerenderedIcon

iOS 3.0 andlater

Specifies the device-related features required forthe application to run. See“UIRequiredDeviceCapabilities” (page 75) fordetails.

"Requireddevicecapabilities”

UIRequiredDevice-Capabilities

iOSSpecifies whether this application requires a Wi-Ficonnection. See “UIRequiresPersistentWiFi” (page77) for details.

"Applicationuses Wi-Fi”

UIRequiresPersistent-WiFi

iOSSpecifies whether the status bar is initially hiddenwhen the application launches. See“UIStatusBarHidden” (page 78) for details.

"Status bar isinitiallyhidden”

UIStatusBarHidden

iOSSpecifies the style of the status bar as theapplication launches. See “UIStatusBarStyle” (page78) for details.

"Status barstyle”

UIStatusBarStyle

UIKit KeysKey Summary

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

70

Page 71: In Fop List Key Reference

AvailabilitySummaryXcode nameKey

iOS 3.0 andlater

Specifies the communications protocolssupported for communication with attachedhardware accessories. See“UISupportedExternalAccessoryProtocols” (page78) for details.

"Supportedexternalaccessoryprotocols”

UISupportedExternal-AccessoryProtocols

iOS 3.2 andlater

Specifies the orientations that the applicationsupports. See“UISupportedInterfaceOrientations” (page 79)for details.

"Supportedinterfaceorientations”

UISupportedInterface-Orientations

iOS 3.0 andlater

Specifies whether Core Animation layers useantialiasing when drawing does not align to pixelboundaries. See “UIViewEdgeAntialiasing” (page79) for details.

"Renderswith edgeantialiasing”

UIViewEdge-Antialiasing

iOS 3.0 andlater

Specifies whether Core Animation layers inheritthe opacity of their superlayer. See“UIViewGroupOpacity” (page 80) for details.

"Renderswith groupopacity”

UIViewGroupOpacity

UIAppFontsUIAppFonts (Array - iOS) specifies any application-provided fonts that should be made available throughthe normal mechanisms. Each item in the array is a string containing the name of a font file (including filenameextension) that is located in the application’s bundle. The system loads the specified fonts and makes themavailable for use by the application when that application is run.

This key is supported in iOS 3.2 and later.

UIApplicationExitsOnSuspendUIApplicationExitsOnSuspend (Boolean - iOS) specifies that the application should be terminated ratherthan moved to the background when it is quit. Applications linked against iOS SDK 4.0 or later can include thiskey and set its value to YES to prevent being automatically opted-in to background execution and applicationsuspension. When the value of this key is YES, the application is terminated and purged from memory insteadof moved to the background. If this key is not present, or is set to NO, the application moves to the backgroundas usual.

This key is supported in iOS 4.0 and later.

UIKit KeysUIAppFonts

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

71

Page 72: In Fop List Key Reference

UIBackgroundModesUIBackgroundModes (Array - iOS) specifies that the application provides specific background services andmust be allowed to continue running while in the background. These keys should be used sparingly and onlyby applications providing the indicated services. Where alternatives for running in the background exist, thosealternatives should be used instead. For example, applications can use the signifiant location change interfaceto receive location events instead of registering as a background location application.

Table 2 lists the possible string values that you can put into the array associated with this key. You can includeany or all of these strings but your application must provide the indicated services.

Table 2 Values for the UIBackgroundModes array

DescriptionValue

The application plays audible content in the background.audio

The application provides location-based information to the user and requiresthe use of the standard location services (as opposed to the significantchange location service) to implement this feature.

location

The application provides Voice-over-IP services. Applications with this keyare automatically launched after system boot so that the application canreestablish VoIP services. Applications with this key are also allowed to playbackground audio.

voip

The application processes content that was recently downloaded in thebackground using the Newsstand Kit framework, so that the content isready when the user wants it.

This value is supported in iOS 5.0 and later.

newsstand-content

The application communicates with an accessory that delivers data atregular intervals.

This value is supported in iOS 5.0 and later.

external-accessory

The application uses the CoreBluetooth framework to communicate witha Bluetooth accessory while in the background.

This value is supported in iOS 5.0 and later.

bluetooth-central

This key is supported in iOS 4.0 and later.

UIKit KeysUIBackgroundModes

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

72

Page 73: In Fop List Key Reference

UIDeviceFamilyUIDeviceFamily (Number or Array - iOS) specifies the underlying hardware type on which this applicationis designed to run.

Important Do not insert this key manually into your Info.plist files. Xcode inserts it automatically basedon the value in the Targeted Device Family build setting. You should use that build setting to change thevalue of the key.

The value of this key is usually an integer but it can also be an array of integers. Table 3 lists the possible integervalues you can use and the corresponding devices.

Table 3 Values for the UIDeviceFamily key

DescriptionValue

(Default) The application runs on iPhone and iPod touch devices.1

The application runs on iPad devices.2

This key is supported in iOS 3.2 and later.

UIFileSharingEnabledUIFileSharingEnabled (Boolean - iOS) specifies whether the application shares files through iTunes. Ifthis key is YES, the application shares files. If it is not present or is NO, the application does not share files.Applications must put any files they want to share with the user in their <Application_Home>/Documentsdirectory, where <Application_Home> is the path to the application’s home directory.

In iTunes, the user can access an application’s shared files from the File Sharing section of the Apps tab for theselected device. From this tab, users can add and remove files from the directory.

This key is supported in iOS 3.2 and later.

UIInterfaceOrientationUIInterfaceOrientation (String - iOS) specifies the initial orientation of the application’s user interface.

This value is based on the UIInterfaceOrientation constants declared in the UIApplication.h headerfile. The default style is UIInterfaceOrientationPortrait.

UIKit KeysUIDeviceFamily

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

73

Page 74: In Fop List Key Reference

UILaunchImageFileUILaunchImageFile (String - iOS) specifies the name of the launch image file for the application. If thiskey is not specified, the system assumes a name of Default.png. This key is typically used by universalapplications when different sets of launch images are needed for iPad versus iPhone or iPod touch devices.

If you include this key in your Info.plist file, any launch images you include in your application’s bundleshould be based on the string. For example, suppose you want to include portrait and landscape launch imagesfor iPad using the base name MyiPadImage.png. You would include the UILaunchImageFile~ipad keyin your Info.plist file and set its value to MyiPadImage.png. You would then include aMyiPadImage-Portrait.png file and a MyiPadImage-Landscape.png file in your bundle to specify thecorresponding launch images.

This key is supported in iOS 3.2 and later.

UIMainStoryboardFileUIMainStoryboardFile (String - iOS) contains a string with the name of the application’s main storyboardfile (minus the .storyboard extension). A storyboard file is an Interface Builder archive containing theapplication’s view controllers, the connections between those view controllers and their immediate views, andthe segues between view controllers. When this key is present, the main storyboard file is loaded automaticallyat launch time and its initial view controller installed in the application’s window.

This key is mutually exclusive with the “NSMainNibFile” (page 52) key. You should include one of the keys inyour Info.plist file but not both. This key is supported in iOS 5.0 and later.

UINewsstandAppUINewsstandApp (Boolean - iOS) specifies the whether the application presents its content in Newsstand.Publishers of newspaper and magazine content use the Newsstand Kit framework to handle the downloadingof new issues. However, instead of those applications showing up on the user’s Home screen, they are collectedand presented through Newsstand. This key identifies the applications that should be presented that way.

Such applications must also provide default Newsstand icons as described in “Contents of the UINewsstandIconDictionary” (page 33).

This key is supported in iOS 5.0 and later.

UIKit KeysUILaunchImageFile

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

74

Page 75: In Fop List Key Reference

UIPrerenderedIconUIPrerenderedIcon (Boolean - iOS) specifies whether the application’s icon already contains a shine effect.If the icon already has this effect, you should set this key to YES to prevent the system from adding the sameeffect again. All icons automatically receive a rounded bezel regardless of the value of this key.

DescriptionValue

iOS does not apply a shine effect to the application icon.YES

(Default) iOS applies a shine effect to the application icon.NO

UIRequiredDeviceCapabilitiesUIRequiredDeviceCapabilities (Array or Dictionary - iOS) lets iTunes and the App Store know whichdevice-related features an application requires in order to run. iTunes and the mobile App Store use this listto prevent customers from installing applications on a device that does not support the listed capabilities.

If you use an array, the presence of a given key indicates the corresponding feature is required. If you use adictionary, you must specify a Boolean value for each key. If the value of this key is true, the feature is required.If the value of the key is false, the feature must not be present on the device. In both cases, omitting a keyindicates that the feature is not required but that the application is able to run if the feature is present.

Table 4 lists the keys that you can include in the array or dictionary associated with theUIRequiredDeviceCapabilities key. You should include keys only for the features that your applicationabsolutely requires. If your application can accommodate missing features by avoiding the code paths thatuse those features, do not include the corresponding key.

Table 4 Dictionary keys for the UIRequiredDeviceCapabilities key

DescriptionKey

Include this key if your application requires (or specifically prohibits) thepresence of the Phone application. You might require this feature if yourapplication opens URLs with the tel scheme.

telephony

Include this key if your application requires (or specifically prohibits) accessto the networking features of the device.

wifi

Include this key if your application requires (or specifically prohibits) thepresence of the Messages application. You might require this feature ifyour application opens URLs with the sms scheme.

sms

UIKit KeysUIPrerenderedIcon

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

75

Page 76: In Fop List Key Reference

DescriptionKey

Include this key if your application requires (or specifically prohibits) thepresence of a camera on the device. Applications use theUIImagePickerController interface to capture images from thedevice’s still camera.

still-camera

Include this key if your application requires (or specifically prohibits)auto-focus capabilities in the device’s still camera. Although mostdevelopers should not need to include this key, you might include it ifyour application supports macro photography or requires sharper imagesin order to do some sort of image processing.

auto-focus-camera

Include this key if your application requires (or specifically prohibits) thepresence of a forward-facing camera. Applications use theUIImagePickerController interface to capture video from the device’scamera.

front-facing-camera

Include this key if your application requires (or specifically prohibits) thepresence of a camera flash for taking pictures or shooting video.Applications use the UIImagePickerController interface to controlthe enabling of this feature.

camera-flash

Include this key if your application requires (or specifically prohibits) thepresence of a camera with video capabilities on the device. Applicationsuse the UIImagePickerController interface to capture video fromthe device’s camera.

video-camera

Include this key if your application requires (or specifically prohibits) thepresence of accelerometers on the device. Applications use the classes ofthe Core Motion framework to receive accelerometer events. You do notneed to include this key if your application detects only device orientationchanges.

accelerometer

Include this key if your application requires (or specifically prohibits) thepresence of a gyroscope on the device. Applications use the Core Motionframework to retrieve information from gyroscope hardware.

gyroscope

Include this key if your application requires (or specifically prohibits) theability to retrieve the device’s current location using the Core Locationframework. (This key refers to the general location services feature. If youspecifically need GPS-level accuracy, you should also include the gps key.)

location-services

UIKit KeysUIRequiredDeviceCapabilities

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

76

Page 77: In Fop List Key Reference

DescriptionKey

Include this key if your application requires (or specifically prohibits) thepresence of GPS (or AGPS) hardware for greater accuracy when trackinglocations. If you include this key, you should also include thelocation-services key. You should require GPS only if your applicationneeds more accurate location data than the cell or Wi-fi radios mightotherwise allow.

gps

Include this key if your application requires (or specifically prohibits) thepresence of magnetometer hardware. Applications use this hardware toreceive heading-related events through the Core Location framework.

magnetometer

Include this key if your application requires (or specifically prohibits) GameCenter (iOS 4.1 and later.)

gamekit

Include this key if your application uses the built-in microphone orsupports accessories that provide a microphone.

microphone

Include this key if your application requires (or specifically prohibits) thepresence of the OpenGL ES 1.1 interfaces.

opengles-1

Include this key if your application requires (or specifically prohibits) thepresence of the OpenGL ES 2.0 interfaces.

opengles-2

Include this key if your application is compiled only for the armv6instruction set. (iOS v3.1 and later.)

armv6

Include this key if your application is compiled only for the armv7instruction set. (iOS v3.1 and later.)

armv7

Include this key if your application requires (or specifically prohibits)peer-to-peer connectivity over Bluetooth. (iOS v3.1 and later.)

peer-peer

Include this key if your application requires (or specifically prohibits) thepresence of Bluetooth low-energy hardware on the device. (iOS 5 andlater.)

bluetooth-le

This key is supported in iOS 3.0 and later.

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

UIKit KeysUIRequiresPersistentWiFi

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

77

Page 78: In Fop List Key Reference

DescriptionValue

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

YES

(Default) iOS closes the active Wi-Fi connection after 30 minutes.NO

Note If an iPad contains applications that use push notifications and subsequently goes to sleep,the device’s active WiFi connection automatically remains associated with the current access pointif cellular service is unavailable or out of range.

UIStatusBarHiddenUIStatusBarHidden (Boolean - iOS) specifies whether the status bar is initially hidden when the applicationlaunches.

DescriptionValue

Hides the status bar.YES

Shows the status bar.NO

UIStatusBarStyleUIStatusBarStyle (String - iOS) specifies the style of the status bar as the application launches.

This value is based on the UIStatusBarStyle constants declared in UIApplication.h header file. Thedefault style is UIStatusBarStyleDefault.

UISupportedExternalAccessoryProtocolsUISupportedExternalAccessoryProtocols (Array - iOS) specifies the protocols that your applicationsupports and can use to communicate with external accessory hardware. Each item in the array is a string listingthe name of a supported communications protocol. Your application can include any number of protocols inthis list and the protocols can be in any order. The system does not use this list to determine which protocol

UIKit KeysUIStatusBarHidden

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

78

Page 79: In Fop List Key Reference

your application should choose; it uses it only to determine if your application is capable of communicatingwith the accessory. It is up to your code to choose an appropriate communications protocol when it beginstalking to the accessory.

This key is supported in iOS 3.0 and later. For more information about communicating with external accessories,see “Communicating with External Accessories” in iOS App Programming Guide .

UISupportedInterfaceOrientationsUISupportedInterfaceOrientations (Array - iOS) specifies the interface orientations your applicationsupports. The system uses this information (along with the current device orientation) to choose the initialorientation in which to launch your application. The value for this key is an array of strings. Table 5 lists thepossible string values you can include in the array.

Table 5 Supported orientations

DescriptionValue

The device is in portrait mode, with the device held uprightand the home button at the bottom. If you do not specify anyorientations, this orientation is assumed by default.

UIInterface-OrientationPortrait

The device is in portrait mode but upside down, with the deviceheld upright and the home button at the top.

UIInterface-OrientationPortrait-UpsideDown

The device is in landscape mode, with the device held uprightand the home button on the left side.

UIInterface-OrientationLandscapeLeft

The device is in landscape mode, with the device held uprightand the home button on the right side.

UIInterface-OrientationLandscapeRight

This key is supported in iOS 3.2 and later.

UIViewEdgeAntialiasingUIViewEdgeAntialiasing (Boolean - iOS) specifies whether Core Animation layers use antialiasing whendrawing a layer that is not aligned to pixel boundaries.

UIKit KeysUISupportedInterfaceOrientations

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

79

Page 80: In Fop List Key Reference

DescriptionValue

Use antialiasing when drawing a layer that is not aligned to pixel boundaries. This optionallows for more sophisticated rendering in the simulator but can have a noticeable impacton performance.

YES

(Default) Do not use antialiasing.NO

This key is supported in iOS 3.0 and later.

UIViewGroupOpacityUIViewGroupOpacity (Boolean - iOS) specifies whether Core Animation sublayers inherit the opacity oftheir superlayer.

DescriptionValue

Inherit the opacity of the superlayer. This option allows for more sophisticated rendering inthe simulator but can have a noticeable impact on performance.

YES

(Default) Do not inherit the opacity of the superlayer.NO

This key is supported in iOS 3.0 and later.

UIKit KeysUIViewGroupOpacity

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

80

Page 81: In Fop List Key Reference

This table describes the changes to Information Property List Key Reference .

NotesDate

Added info to CFBundleURLTypes regarding RSS feeds.2012-02-16

Added the "bluetooth-central" value to the UIBackgroundModes key.2011-12-21

Added a new value to the UIRequiredDeviceCapabilities key to reflectsupport for low-power Bluetooth hardware.

2011-10-12

Incorporates keys introduced in iOS 5.0.

Added information about key support in Mac OS X 10.7.2011-06-06

Corrected the availability of the LSMinimumSystemVersion andMinimumOSVersion keys.

2010-11-15

Fixed some typographical errors.2010-08-20

Changed references of iOS to iOS.2010-07-08

Added new keys introduced in iOS 4.0.2010-06-14

Added keys specific to iOS 3.2.2010-03-23

Removed theLSHasLocalizedDisplayName key, which was deprecatedin Mac OS X 10.2.

New document describing the keys you can use in a bundle's Info.plistfile.

2009-10-19

2012-02-16 | © 2012 Apple Inc. All Rights Reserved.

81

Document Revision History

Page 82: In Fop List Key Reference

Apple Inc.© 2012 Apple Inc.All rights reserved.

No part of this publication may be reproduced,stored in a retrieval system, or transmitted, in anyform or by any means, mechanical, electronic,photocopying, recording, or otherwise, withoutprior written permission of Apple Inc., with thefollowing exceptions: Any person is herebyauthorized to store documentation on a singlecomputer for personal use only and to printcopies of documentation for personal useprovided that the documentation containsApple’s copyright notice.

The Apple logo is a trademark of Apple Inc.

No licenses, express or implied, are granted withrespect to any of the technology described in thisdocument. Apple retains all intellectual propertyrights associated with the technology describedin this document. This document is intended toassist application developers to developapplications only for Apple-labeled computers.

Apple Inc.1 Infinite LoopCupertino, CA 95014408-996-1010

.Mac is a registered service mark of Apple Inc.

App Store is a service mark of Apple Inc.

Apple, the Apple logo, AppleScript, Carbon,Cocoa, Cocoa Touch, eMac, Finder, iPhone, iPod,iPod touch, iTunes, Mac, Mac OS, Macintosh,Objective-C, Quartz, Rosetta, Safari, and Xcodeare trademarks of Apple Inc., registered in theUnited States and other countries.

iPad is a trademark of Apple Inc.

IOS is a trademark or registered trademark ofCisco in the U.S. and other countries and is usedunder license.

Intel and Intel Core are registered trademarks ofIntel Corporation or its subsidiaries in the UnitedStates and other countries.

Java is a registered trademark of Oracle and/orits affiliates.

OpenGL is a registered trademark of SiliconGraphics, Inc.

PowerPC and and the PowerPC logo aretrademarks of International Business MachinesCorporation, used under license therefrom.

Even though Apple has reviewed this document,APPLE MAKES NO WARRANTY OR REPRESENTATION,EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THISDOCUMENT, ITS QUALITY, ACCURACY,MERCHANTABILITY, OR FITNESS FOR A PARTICULARPURPOSE. AS A RESULT, THIS DOCUMENT IS PROVIDED“AS IS,” AND YOU, THE READER, ARE ASSUMING THEENTIRE RISK AS TO ITS QUALITY AND ACCURACY.

IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT,INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIALDAMAGES RESULTING FROM ANY DEFECT ORINACCURACY IN THIS DOCUMENT, even if advised ofthe possibility of such damages.

THE WARRANTY AND REMEDIES SET FORTH ABOVEARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORALOR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer,agent, or employee is authorized to make anymodification, extension, or addition to this warranty.

Some states do not allow the exclusion or limitationof implied warranties or liability for incidental orconsequential damages, so the above limitation orexclusion may not apply to you. This warranty givesyou specific legal rights, and you may also have otherrights which vary from state to state.