Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page >


Application Frameworks, Libraries, and Helpers

Applications sometimes have supplementary code modules—that is, code that isn’t compiled into the application executable. This supplementary code may take the form of a framework, a shared library (CFM or otherwise), a plug-in, a helper application, or some other type of software.

There are various reasons for this compartmentalizing of application code. One is efficiency; for example, a software developer might have a suite of applications that all rely on the same framework or that make use of the same helper application, such as a custom document viewer. Another reason is performance; an application may decide to defer loading a module such as a plug-in until the user requests it. Or an application may be designed from the outset to be extensible.

The frameworks and shared libraries in the application package are those needed for the application to run, or at least to be complete. However, the application package does not include the Apple-supplied frameworks to which the application links. These are installed in the standard system location /System/Library/Frameworks. Installers should not delete frameworks in an application package or move them somewhere else.

The application bundle has two directories for the various types of supplementary code:

Frameworks/
PlugIns/

The remainder of this section explains the purposes and issues related to the first three of these directories. For a description of the PlugIns directory, see “Applications and Loadable Bundles”.


Private Frameworks

The Frameworks directory contains frameworks (or shared libraries) that are inextricably bound to the application. These frameworks are private to the application. Only the application itself uses the frameworks in this directory, and no other application does, including applications in the same “suite” or from the same developer. The dynamic shared libraries of these private frameworks are revision-locked and will not be superseded by any other, even newer, versions that may be available to the operating system.

An application always uses the code in Frameworks. If a framework or shared library is missing from Frameworks, the application cannot launch.

Listing 5-1 illustrates how a typical private framework might be stored in the application bundle.

Listing 5-1 Location of an application’s private framework

FantasticApp.app/
    Contents/
        Info-macos.plist
        MacOS/
        Resources/
        Frameworks/
            GoodStuff.framework/
        PlugIns/
        SharedSupport/


< Previous PageNext Page >


Last updated: 2003-08-21

Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2003 Apple Computer, Inc.
All rights reserved. | Terms of use | Privacy Notice