Types of Bundles
Mac OS X recognizes at least three distinct types of bundles:
-
Application
. For Mac OS X applications, the application package is a bundle that contains the resources needed to launch the application, including the application executables.
-
Framework
. A framework is a bundle containing a dynamic shared library and all the resources that go with that library, such as header files, images, and documentation.
-
Loadable bundle
. Like an application, a loadable bundle usually contains executable code and associated resources. Loadable bundles differ from applications and frameworks in that they must be explicitly loaded into a running application. There are some special types of loadable bundles, two of which are especially noteworthy.
-
Palette
. A palette is a type of loadable bundle specialized for Interface Builder. It contains custom user-interface objects and compiled code that are loaded into an Interface Builder palette.
-
Plug-in
. A plug-in is a special type of loadable bundle that requires an architecture and an implementation above and beyond the simple code-loading and function-lookup functionality of the regular bundle programming interfaces.
In addition, kernel extensions (KEXTs) are a type of loadable bundle that the system bundle routines recognize and handle appropriately (although their internal structure is different from other loadable bundles). These bundles have an extension of
.kext
. The Kernel Manager, which claims KEXTs as a document type, dynamically loads them into the kernel environment.
Bundles must have an extension appropriate to their type. For applications, that extension is
.app
. For the developmental variants of applications, the extensions should be
.debug
and
.profile
. The extension for frameworks is
.framework
. Plug-ins and other loadable bundles can have any extension, but it should be an extension claimed by an application that knows how to load the bundle; the generic extension for loadable bundles is
.bundle
. The Finder does not show the
.app
extension.
© 2000 Apple Computer, Inc. (Last Updated 30 June 2000)