Developer Documentation
PATH  Mac OS X Documentation > Mac OS X Server Release Notes


[Back]

MacOS X Server Release Notes Copyright © 1999 by Apple Computer, Inc. All Rights Reserved.

MacOS X Server Developer Release Notes:
Information Property List

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.

 

Abstract Types

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.

 

Roles

Applications that declare types can declare their role in relation to the type:

 

Specification of the New Format

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.

Fields From the Current Format

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.

Added Fields (Non-Document)

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.

NSTypes Fields (Document)

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.