This appendix contains information about the frameworks of Mac OS X. These frameworks provide the interfaces you need to write software for the platform. Some of these frameworks contain simple sets of interfaces while others contain multiple subframeworks. Where applicable, the tables in this appendix list any key prefixes used by the classes, methods, functions, types, or constants of the framework. You should avoid using any of the specified prefixes in your own symbol names.
System Frameworks
Xcode Frameworks
System Libraries
Table B-1 describes the frameworks located in the /System/Library/Frameworks
directory and lists the first version of Mac OS X in which each became available.
Name | First available | Prefixes | Description |
---|---|---|---|
| 10.3 |
| Umbrella framework for vector-optimized operations. See “Accelerate Framework.” |
10.2 |
| Contains functions for creating and accessing a systemwide database of contact information. | |
10.0 |
| ||
10.0 |
| Contains classes and methods for the Cocoa user-interface layer. In general, link to | |
10.0 | N/A | Deprecated. Use | |
10.0 |
| Contains interfaces for creating AppleScript plug-ins and provides support for applications built with AppleScript Studio. | |
10.0 |
| Deprecated. Do not use. | |
10.0 |
| Contains utilities for handling URLs in AppleShare clients. | |
10.0 | N/A | Deprecated. Do not use. | |
| 10.0 |
| Umbrella framework for several application-level services. See “Application Services Framework.” |
10.0 |
| Contains interfaces for getting audio stream data, routing audio signals through audio units, converting between audio formats, and playing back music. | |
10.0 |
| Contains interfaces for defining Core Audio plug-ins. | |
| 10.4 |
| Umbrella framework for creating Automator plug-ins. See “Automator Framework.” |
10.5 |
| Contains interfaces for managing iCal calendar data. | |
| 10.0 |
| Umbrella framework for Carbon-level services. See “Carbon Framework.” |
10.0 |
| Wrapper for including the Cocoa frameworks | |
10.5 |
| Contains interfaces for managing identity information. | |
10.0 |
| Contains the hardware abstraction layer interface for manipulating audio. | |
10.4 |
| Contains Objective-C interfaces for audio unit custom views. | |
10.4 |
| Contains interfaces for managing your application’s data model. | |
10.0 |
| Provides fundamental software services, including abstractions for common data types, string utilities, collection utilities, plug-in support, resource management, preferences, and XML parsing. | |
10.0 |
| Contains utilities for implementing MIDI client programs. | |
10.0 |
| Contains interfaces for creating MIDI drivers to be used by the system. | |
| 10.0 |
| Umbrella framework for system-level services. See “Core Services Framework.” |
10.5 |
| Contains interfaces for managing video-based content. | |
10.0 |
| Contains interfaces for supporting network-based lookup and directory services in your application. You can also use this framework to develop directory service plug-ins. | |
10.2 |
| Contains interfaces for burning data to CDs and DVDs. | |
10.2 |
| Contains the user interface layer for interacting with users during the burning of CDs and DVDs. | |
10.4 |
| Contains interfaces for monitoring and responding to hard disk events. | |
10.0 |
| Contains the game sprocket component for drawing content to the screen. | |
10.0 |
| Contains interfaces for communicating with digital video devices, such as video cameras. | |
10.3 |
| Contains interfaces for embedding DVD playback features into your application. | |
10.0 |
| Contains exception-handling classes for Cocoa applications. | |
10.2 |
| Contains interfaces for communicating with force feedback–enabled devices. | |
10.0 |
| Contains the classes and methods for the Cocoa Foundation layer. If you are creating a Cocoa application, linking to the Cocoa framework is preferable. | |
10.2 |
| Contains interfaces for communicating with FireWire-based audio devices. | |
10.0 |
| Contains interfaces for the OpenGL Utility Toolkit, which provides a platform-independent interface for managing windows. | |
10.3 |
| Contains low-level interfaces for communicating with digital devices such as scanners and cameras. See also, “Carbon Framework.” | |
10.5 |
| Contains interfaces for developing new input methods, which are modules that handle text entry for complex languages. | |
10.4 |
| Contains interfaces for creating plug-ins that run during software installation sessions. | |
10.4 |
| Contains interfaces for obtaining the online status of an instant messaging user. | |
10.2 |
| Contains interfaces for communicating with Bluetooth devices. | |
10.2 |
| Contains the user interface layer for interacting with users manipulating Bluetooth devices. | |
10.0 |
| Contains the main interfaces for developing device drivers. | |
10.0 | N/A | Do not use. | |
10.5 | N/A | Contains interfaces for embedding Java frames in Objective-C code. | |
10.5 |
| Contains the library and resources for executing JavaScript code within an HTML page. (Prior to Mac OS X v10.5, this framework was part of | |
10.0 |
| Contains the system’s Java Development Kit resources. | |
10.0 |
| Contains interfaces for using the Kerberos network authentication protocol. | |
10.0 | numerous | Contains the BSD-level interfaces. | |
10.5 |
| Contains interfaces for classifying text based on latent semantic information. | |
10.0 | N/A | Do not use. | |
10.0 |
| Contains Cocoa extensions for mail delivery. | |
10.4 |
| Contains the interfaces for OpenAL, a cross-platform 3D audio delivery library. | |
10.0 |
| Contains the interfaces for OpenGL, which is a cross-platform 2D and 3D graphics rendering library. | |
10.4 |
| Contains Objective-C interfaces for managing and executing OSA-compliant scripts from your Cocoa applications. | |
10.0 |
| Contains interfaces for interacting with smart card devices. | |
10.0 |
| Contains interfaces for implementing custom modules for the System Preferences application. | |
10.5 |
| Contains interfaces for subscribing to RSS and Atom feeds. | |
10.3 |
| Contains the open source Python scripting language interfaces. | |
10.4 |
| Contains Objective-C interfaces for manipulating QuickTime content. | |
| 10.4 |
| Umbrella framework for Quartz services. See “Quartz Framework” |
10.4 |
| Contains the interfaces for Core Image, Core Animation, and Core Video. | |
10.5 |
| Contains interfaces for generating thumbnail previews of documents. | |
10.0 | N/A | Contains interfaces for embedding QuickTime multimedia into your application. | |
10.5 | N/A | Contains interfaces for the Ruby scripting language. | |
10.5 |
| Contains interfaces for running Ruby scripts from Objective-C code. | |
10.0 | N/A | Contains interfaces for writing screen savers. | |
10.0 |
| Deprecated. Use | |
10.5 |
| Contains interfaces for running scripts from Objective-C code. | |
10.0 |
| Contains interfaces for system-level user authentication and authorization. | |
10.3 |
| Contains Cocoa interfaces for authorizing users. | |
10.3 |
| Contains the user interface layer for authorizing users in Cocoa applications. | |
10.4 |
| Contains the interfaces for synchronizing application data with a central database. | |
10.0 | N/A | Do not use. | |
10.0 |
| Contains interfaces for accessing system-level configuration information. | |
10.3 |
| Contains interfaces for accessing the system’s Tcl interpreter from an application. | |
10.4 |
| Contains interfaces for accessing the system’s Tk toolbox from an application. | |
10.2 |
| Contains interfaces for accessing TWAIN-compliant image-scanning hardware. | |
10.0 | N/A | Deprecated. Use | |
| 10.2 |
| Umbrella framework for rendering HTML content. See “Web Kit Framework.” |
10.4 |
| Contains interfaces for connecting to and managing computing cluster software. |
Mac OS X contains several umbrella frameworks for major areas of functionality. Umbrella frameworks group several related frameworks into a larger framework that can be included in your project. When writing software, link your project against the umbrella framework; do not try to link directly to any of its subframeworks.The following sections describe the contents of the umbrella frameworks in Mac OS X.
Table B-2 lists the subframeworks of the Accelerate framework (Accelerate.framework
). This framework was introduced in Mac OS X version 10.3. If you are developing applications for earlier versions of Mac OS X, vecLib.framework
is available as a standalone framework.
Subframework | Description |
---|---|
Contains vector-optimized interfaces for performing math, big-number, and DSP calculations, among others. | |
Contains vector-optimized interfaces for manipulating image data. |
Table B-3 lists the subframeworks of the Application Services framework (ApplicationServices.framework
). These frameworks provide C-based interfaces and are intended primarily for Carbon applications, although other programs can use them. The listed frameworks are available in all versions of Mac OS X unless otherwise noted.
Table B-4 lists the subframeworks of the Automator framework (Automator.framework
). This framework was introduced in Mac OS X version 10.4.
Subframework | Description |
---|---|
Contains private interfaces for managing Automator plug-ins. |
Table B-5 lists the subframeworks of the Carbon framework (Carbon.framework
). The listed frameworks are available in all versions of Mac OS X unless otherwise noted.
Subframework | Description |
---|---|
Contains the Sound Manager interfaces. Whenever possible, use Core Audio instead. | |
Contains interfaces for displaying the Font window, Color window, and some network-related dialogs. | |
Contains interfaces for launching and searching Apple Help. | |
Contains interfaces for the Carbon Event Manager, HIToolbox object, and other user interface–related managers. | |
Contains interfaces for rendering HTML content. For Mac OS X version 10.2 and later, the Web Kit framework is the preferred framework for HTML rendering. See “Web Kit Framework.” | |
Contains interfaces for capturing images from digital cameras. This framework works in conjunction with the Image Capture Devices framework ( | |
Contains interfaces for managing pen-based input. (Ink events are defined with the Carbon Event Manager.) Available in Mac OS X version 10.3 and later. | |
Contains interfaces for displaying file navigation dialogs. | |
Contains interfaces for writing scripting components and interacting with those components to manipulate and execute scripts. | |
Contains the Carbon Printing Manager interfaces for displaying printing dialogs and extensions. | |
Contains interfaces for displaying security-related dialogs. | |
Contains the Speech Recognition Manager interfaces. |
Table B-6 lists the subframeworks of the Core Services framework (CoreServices.framework
). These frameworks provide C-based interfaces and are intended primarily for Carbon applications, although other programs can use them. The listed frameworks are available in all versions of Mac OS X unless otherwise noted.
Table B-7 lists the subframeworks of the Quartz framework (Quartz.framework
). This framework was introduced in Mac OS X version 10.4.
Subframework | Description |
---|---|
Contains Objective-C interfaces for finding, browsing, and displaying images. Available in Mac OS X version 10.5 and later. | |
Contains Objective-C interfaces for displaying and managing PDF content in windows. | |
Contains Objective-C interfaces for playing Quartz Composer compositions in an application. | |
Contains Objective-C interfaces for managing and applying filter effects to a graphics context. Available in Mac OS X version 10.5 and later. |
Table B-8 lists the subframeworks of the Web Kit framework (WebKit.framework
). This framework was introduced in Mac OS X version 10.2.
Subframework | Description |
---|---|
Contains the library and resources for rendering HTML content in an HTMLView control. |
In Mac OS X v10.5 and later, Xcode and all of its supporting tools and libraries reside in a portable directory structure. This directory structure makes it possible to have multiple versions of Xcode installed on a single system or to have Xcode installed on a portable hard drive that you plug in to your computer when you need to do development. This portability means that the frameworks required by the developer tools are installed in the <Xcode>/Library/Frameworks
directory, where <Xcode>
is the path to the Xcode installation directory. (The default Xcode installation directory is /Developer
.) Table B-9 lists the frameworks that are located in this directory.
Framework | First available | Prefixes | Description |
---|---|---|---|
10.4 | None | Unit-testing framework for C++ code. In Mac OS X v10.4, this framework was in | |
10.5 |
| Contains interfaces for writing plug-ins that work in Interface Builder v3.0 and later. | |
10.4 |
| Contains the interfaces for implementing unit tests in Objective-C. In Mac OS X v10.4, this framework was in |
Note that some specialty libraries at the BSD level are not packaged as frameworks. Instead, Mac OS X includes many dynamic libraries in the /usr/lib
directory and its subdirectories. Dynamic shared libraries are identified by their .dylib
extension. Header files for the libraries are located in /usr/include
.
Mac OS X uses symbolic links to point to the most current version of most libraries. When linking to a dynamic shared library, use the symbolic link instead of a link to a specific version of the library. Library versions may change in future versions of Mac OS X. If your software is linked to a specific version, that version might not always be available on the user’s system.
© 2004, 2008 Apple Inc. All Rights Reserved. (Last updated: 2008-10-15)