The OS X frameworks provide the interfaces you need to write software for Mac. Some of these frameworks contain simple sets of interfaces while others contain multiple subframeworks. Where applicable, the tables in this appendix list the 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
Table A-1 describes the frameworks located in the /System/Library/Frameworks
directory and lists the first version of OS X in which each became available.
Name | First available | Prefixes | Description |
---|---|---|---|
| 10.3 | | Umbrella framework for vector-optimized operations. See “Accelerate Framework.” |
| 10.8 | | Provides access to user accounts stored in the Accounts database. |
| 10.2 | | Provides access to the Address Book, which is a centralized database of user contact information. |
| 10.0 | | Contains Carbon interfaces for OpenGL. |
| 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. |
| 10.6 | | Contains Objective-C extensions for creating AppleScript plug-ins. |
| 10.0 | | Contains utilities for handling URLs in AppleShare clients. |
| 10.0 | | Umbrella framework for several app-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.8 | AVB | Supports Audio Video Bridging (AVB) and implements the IEEE P1722.1 draft standard. |
| 10.4 | | Umbrella framework for creating Automator plug-ins. See “Automator Framework.” |
| 10.7 | | Provides interfaces for playing, recording, inspecting, and editing audiovisual media. |
| 10.5 | | Deprecated. Use Event Kit instead. See “Event Kit.” |
| 10.0 | | Umbrella framework for Carbon-level services. See “Carbon Framework.” |
| 10.3 | CF | Contains interfaces for network communication using HTTP, sockets, and Bonjour. |
| 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 app’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 | CG | Contains the Quartz interfaces for creating graphic content and rendering that content to the screen. |
| 10.6 | | Provides interfaces for determining the geographical location of a computer. |
| 10.7 | | Contains low-level interfaces for for managing and and playing audio-visual media in an app. |
| 10.7 | | Contains interfaces of the Device Abstraction Layer (DAL) used for creating plug-ins that can access media hardware. |
| 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 | CT | Contains the interfaces for performing text layout and display. |
| 10.5 | | Contains interfaces for managing video-based content. |
| 10.6 | | Contains interfaces for managing wireless networks. |
| 10.0 | | Contains interfaces for supporting network-based lookup and directory services in your app. 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 getting information related to local and remote volumes. |
| 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 app. |
| 10.8 | EK | Provides an interface for accessing a user’s calendar events and reminder items. |
| 10.0 | | Contains exception-handling classes for Cocoa apps. |
| 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 app, linking to the Cocoa framework is preferable. |
| 10.2 | | Contains interfaces for communicating with FireWire-based audio devices. |
| 10.8 | GK | Provides APIs that allow your app to participate in Game Center. |
| 10.8 | GLK | Provides functions and classes that reduce the effort required to create new shader-based apps or to port existing apps that rely on fixed-function vertex or fragment processing provided by earlier versions of OpenGL ES or OpenGL. |
| 10.0 | | Contains interfaces for the OpenGL Utility Toolkit, which provides a platform-independent interface for managing windows. |
| 10.7 | | Contains interfaces for Generic Security Services Application Program Interface (GSSAPI). |
| 10.3 | | Contains low-level interfaces for communicating with digital devices such as scanners and cameras. See “Carbon Framework.” |
| 10.6 | | Contains Objective-C interfaces for communicating with digital devices such as scanners and cameras. |
| 10.6 | | Do not use. |
| 10.7 | | Contains interfaces for building third-party plug-ins for Chat services. Umbrella framework for |
| 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 creating user-space device drivers and for interacting with kernel-resident drivers from user space. |
| 10.6 | | Contains low-level interfaces for sharing graphics surfaces between apps. |
| 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 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 interfaces for kernel-extension development, including Mach, BSD, |
| 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.6 | | Contains interfaces for working with network file systems. |
| 10.4 | | Contains the interfaces for OpenAL, a cross-platform 3D audio delivery library. |
| 10.6 | | Contains the interfaces for distributing general-purpose computational tasks across the available GPUs and CPUs of a computer. |
| 10.6 | | Contains Objective-C interfaces for managing Open Directory information. |
| 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 Cocoa apps. |
| 10.0 | | Contains interfaces for interacting with smart card devices. |
| 10.0 | | Contains interfaces for implementing custom modules for the System Preferences app. |
| 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 an app. |
| 10.5 | N/A | Contains interfaces for the Ruby scripting language. |
| 10.5 | | Contains interfaces for running Ruby scripts from Objective-C code. |
| 10.8 | SCN | Provides a high-level, Objective-C API to efficiently load, manipulate, and render 3D scenes in an app. |
| 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 apps. |
| 10.6 | | Contains Objective-C interfaces for sending and receiving server-based notifications. |
| 10.6 | | Contains interfaces for loading, unloading and managing |
| 10.8 | SL | Provides an API for sending requests to supported social networking services that can perform operations on behalf of users. |
| 10.7 | SK | Supports requesting payment from a user to purchase additional functionality or content from the Mac App Store. |
| 10.4 | | Deprecated in OS X v10.7. |
| 10.0 | N/A | Do not use. |
| 10.0 | | Contains interfaces for accessing network configuration and reachability. information. |
| 10.3 | | Contains interfaces for accessing the system’s Tcl interpreter from an app. |
| 10.4 | | Contains interfaces for accessing the system’s Tk toolbox from an app. |
| 10.2 | | Contains interfaces for accessing TWAIN-compliant image-scanning hardware. |
| 10.0 | N/A | Deprecated. Use |
| 10.7 | VDA | Contains interfaces for using hardware resources for accelerated video decoding. |
VideoToolbox.framework | 10.8 | VT | Comprises the 64-bit replacement for the QuickTime Image Compression Manager. |
| 10.2 | | Umbrella framework for rendering HTML content. See “WebKit Framework.” |
| 10.4 | | Deprecated in OS X v10.8. Contains interfaces for connecting to and managing computing cluster software. |
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 OS X.
Accelerate Framework
Table A-2 lists the subframeworks of the Accelerate framework (Accelerate.framework
). If you are developing apps for earlier versions of 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. |
Application Services Framework
Table A-3 lists the subframeworks of the Application Services framework (ApplicationServices.framework
). These frameworks provide C-based interfaces and are intended primarily for Carbon apps, although other programs can use them. The listed frameworks are available in all versions of OS X unless otherwise noted.
Subframework | Description |
---|---|
| Contains interfaces for font layout and management using Apple Type Services. |
| Contains interfaces for color matching using ColorSync. |
| Contains interfaces for accessibility, Internet Config, the pasteboard, the Process Manager, and the Translation Manager. Available in OS X 10.2 and later. |
| Contains interfaces for importing and exporting image data. |
| Contains the Language Analysis Manager interfaces. |
| Contains the Core Printing Manager interfaces. |
| Contains the QuickDraw interfaces. |
| Contains the Speech Manager interfaces. |
Automator Framework
Table A-4 lists the subframeworks of the Automator framework (Automator.framework
).
Subframework | Description |
---|---|
| Contains private interfaces for managing Automator plug-ins. |
Carbon Framework
Table A-5 lists the subframeworks of the Carbon framework (Carbon.framework
). The listed frameworks are available in all versions of 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. The WebKit framework is the preferred framework for HTML rendering. See“WebKit 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.) |
| 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. |
Core Services Framework
Table A-6 lists the subframeworks of the Core Services framework (CoreServices.framework
). These frameworks provide C-based interfaces and are intended primarily for Carbon apps, although other programs can use them. The listed frameworks are available in all versions of OS X unless otherwise noted.
Subframework | Description |
---|---|
| Contains interfaces for creating and manipulating Apple events and making apps scriptable. |
| Contains interfaces for many legacy Carbon Managers. Most of the APIs in this framework are deprecated in OS X v10.8 (for more information, see Carbon Core Deprecations). |
| Provides dictionary lookup capabilities. |
| Contains interfaces for launching apps. |
| Contains interfaces for managing Spotlight metadata. |
| Contains interfaces for Open Transport and many hardware-related legacy Carbon managers. |
| Contains interfaces for the Search Kit. |
Quartz Framework
Table A-7 lists the subframeworks of the Quartz framework (Quartz.framework
).
Subframework | Description |
---|---|
| Contains Objective-C interfaces for finding, browsing, and displaying images. |
| Contains Objective-C interfaces for displaying and managing PDF content. |
| Contains Objective-C interfaces for playing Quartz Composer compositions in an app. |
| Contains Objective-C interfaces for managing and applying filter effects to a graphics context. |
| Contains Objective-C interfaces for creating and managing a Quick Look preview panel, which is a UI object that displays preview items. |
WebKit Framework
Table A-8 lists the subframeworks of the WebKit framework (WebKit.framework
).
Subframework | Description |
---|---|
| Contains the library and resources for rendering HTML content in an HTMLView control. |
Xcode Frameworks
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. Table A-9 lists the frameworks that are located in this directory.
Framework | First available | Prefixes | Description |
---|---|---|---|
| 10.4 | None | Unit-testing framework for C++ code. |
| 10.5 | | Interfaces for writing plug-ins that work in Interface Builder 3.0 and later. |
| 10.4 | | Interfaces for implementing unit tests in Objective-C. |
System Libraries
Some specialty libraries at the BSD level are not packaged as frameworks. Instead, 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 the /usr/include
directory.
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 OS X. If your software is linked to a specific version, that version might not always be available on the user’s system.