MacOS X Server Release Notes Copyright © 1999 by Apple Computer, Inc. All Rights Reserved.
This release note describes a new format for the information property list files (such as CustomInfo.plist and Info.plist) found inside application wrappers and other bundles. These files specify various information about the application or bundle that can be used at runtime. The new format consists of of additions to the current format, with the exception of the NSExtensions property which is being made obsolete by the NSTypes property. (NSExtensions fields will still be read for backwards compatibility.)
The new format adds the document-type information necessary for the new document-based application architecture in the Application Kit. It also puts in place the information the Finder needs for upcoming releases. Applications can deal better with HFS and be better prepared for future releases if they adopt the new format. The new standard About panel also makes use of some of these keys.
The biggest change in the information property list format is the introduction of an "abstract type" for any data found in documents or on the pasteboard. Abstract types have corresponding concrete types, such as a filename extension or a MacOSType (4-byte identifier). Concrete types are ways that an abstract type is encoded in various file systems or persistent formats. The notion of abstract types is essential for operating environments such as Mac OS X Server's (including Yellow Box for Windows) that have DOS, Unix, Windows NT and HFS filesystems. This notion improves general application interoperability by removing the current dichotomy between the pasteboard type system and the filename-extension type system.
Abstract types should contain a copyright to ensure uniqueness. Developers will need to register their concrete types.
Applications that declare types can declare their role in relation to the type:
The following tables supply details of the new format. Fields
marked with an asterisk can be localized, meaning their values will
be translated via an InfoPlist.strings file, if it exists in the
app's resources. Note that the Info.plist files are extensible by
design, and thus other subsystems (e.g. Yellow Box Java) may define
additional keys not specified here.
Key |
Value Description |
---|---|
NSExecutable |
Unchanged. Name of the file holding the executable code. |
NSExtensions |
Deprecated , with status-quo semantics. If an NSTypes field exists in the Info property list, this field is ignored. |
NSIcon |
Unchanged. Name of the image file for the application icon. Assumed to exist in the application bundle. |
NSMainNibFile |
Unchanged. |
NSPrincipalClass |
Unchanged. |
NSServices |
Unchanged. |
Key |
Value Description |
---|---|
NSInfoPlistVersion |
The version number of the data in this file. This specification is version "5.0". |
NSAppVersion |
The version of the application. Although this can be any text, conventionally it is just the version designator (for example, "4.0", "X", or "98") and not the whole product name. |
NSBuildVersion |
The build version of the application. Although this can be any text, conventionally it is just the internal build version designator (for example, "38.1G" or "091598 11:32") and not the whole product name. |
NSTypes |
An array of document type dictionaries (members defined below). |
NSMacOSCreator |
Four-byte creator code used on HFS to show file ownership. |
*NSHumanReadableShortName |
A brief (1 or 2 words) human-readable product name for the application. |
*NSHumanReadableCompleteName |
The complete, human-readable product name for the application. |
*NSHumanReadableCopyright |
A human-readable copyright string for the application. |
The NSTypes property is an array of dictionaries. Each dictionary describes a document type.
Key |
Value Description |
---|---|
NSName |
The abstract name of this data type. It is used when this data is on the pasteboard. It should contain a trademarked name to ensure uniqueness. Must be present for this type to be valid. Note that for system types you can use one of the pasteboard variable names as the NSName value: NSStringPboardType, NSPostScriptPboardType, NSTIFFPboardType, NSRTFPboardType, NSRTFDPboardType, NSPICTPboardType. |
*NSHumanReadableName |
A human-readable name for the type. |
NSIcon |
The name of the image file for this type. (The file is assumed to be located in the application bundle.) |
NSUnixExtensions |
An array of file suffixes used to encode this type on Unix filesystems. It is case-insensitive. The first suffix is used as the extension for newly created files. |
NSDOSExtensions |
An array of file suffixes used to encode this type on DOS filesystems. It is case-insensitive. The first suffix is used as the extension for newly created files. |
NSMacOSTypes |
An array of four-byte MacOS codes used to encode this type. The first code is used as the extension for newly created files. |
NSMIMETypes |
An array of MIME types used to encode this type. |
NSRole |
A string indicating the role this application plays for this type: one of Editor, Viewer or None (see "Roles" above). If absent, the role is assumed to be "Editor". |
NSDocumentClass |
The NSDocument subclass used to instantiate instances of the document. |