- Application_name.app/contents/frameworks/ Mac
- C++ Web Application Framework
- What Is Application Framework
- Best Mobile App Framework
Sudo mdfind -onlyin /Library 'identityservices' found 0 files in /Library. Both commands search differently of course. What started this whole hunt was that mdfind was able to find other file name searches in /Library, but /Library/IdentityServices was not found when searched for. QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity.First made in 1991, the latest Mac version, QuickTime X, is currently available on Mac OS X Snow Leopard and newer. Apple ceased support for the Windows version of QuickTime in 2016, and ceased support for QuickTime 7.
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.
Application_name.app/contents/frameworks/ Mac
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 | |||
---|---|---|---|---|---|---|
Accelerate.framework | 10.3 | cblas , vDSP , vv | Umbrella framework for vector-optimized operations. See Accelerate Framework. | |||
Accounts.framework | 10.8 | AC | Provides access to user accounts stored in the Accounts database. See Accounts Framework Reference. | |||
AddressBook.framework | 10.2 | AB , ABV | Provides access to the Address Book, which is a centralized database of user contact information. Apps that target OS X v10.11 or greater should use Contacts.framework . | |||
AGL.framework | 10.0 | AGL , GL , glm , GLM , glu , GLU | Contains Carbon interfaces for OpenGL. See AGL Reference. | |||
AppKit.framework | 10.0 | NS | Contains classes and methods for the Cocoa user-interface layer. In general, link to Cocoa.framework instead of this framework. See AppKit Framework Reference. | |||
AppKitScripting.framework | 10.0 | N/A | Deprecated. Use AppKit.framework instead. | |||
AppleScriptKit.framework | 10.0 | ASK | Contains interfaces for creating AppleScript plug-ins. | |||
AppleScriptObjC.framework | 10.6 | NS | Contains Objective-C extensions for creating AppleScript plug-ins. | |||
ApplicationServices.framework | 10.0 | AE , AX , ATSU , CG , CT , LS , PM , QD , UT | Umbrella framework for several app-level services. See Application Services Framework. | |||
AudioToolbox.framework | 10.0 | AU , AUMIDI | Contains interfaces for getting audio stream data, routing audio signals through audio units, converting between audio formats, and playing back music. See Audio Toolbox Framework Reference. | |||
AudioUnit.framework | 10.0 | AU | Contains interfaces for defining Core Audio plug-ins. See Audio Unit Framework Reference. | |||
AudioVideoBridging.framework | 10.8 | AVB | Supports Audio Video Bridging (AVB) and implements the IEEE P1722.1 draft standard. | |||
Automator.framework | 10.4 | AM | Umbrella framework for creating Automator plug-ins. See Automator Framework. | |||
AVFoundation.framework | 10.7 | AV | Provides interfaces for playing, recording, inspecting, and editing audiovisual media. See AVFoundation Audio Functions. | |||
AVKit.framework | 10.9 | AV | Provides API for media playback including user controls, chapter navigation, subtitles, and closed captioning. See AV Kit Framework Reference | |||
CalendarStore.framework | 10.5 | Cal | Deprecated. Use Event Kit instead. See Event Kit. | |||
Carbon.framework | 10.0 | HI , HR , ICA , ICD , Ink , Nav , OSA , PM , SFS ,SR | Umbrella framework for Carbon-level services. See Carbon Framework. | |||
CFNetwork.framework | 10.3 | CF | Contains interfaces for network communication using HTTP, sockets, and Bonjour. See CFNetwork Framework Reference. | |||
CloudKit.framework | 10.10 | CK | Provides a conduit for moving data between your app and iCloud that can be used for all types of data. It also gives you control of when transfers occur. See CloudKit Quick Start or CloudKit Framework Reference. | |||
Cocoa.framework | 10.0 | NS | Wrapper for including the Cocoa frameworks AppKit.framework , Foundation.framework , and CoreData.framework . | |||
Collaboration.framework | 10.5 | CB | Contains interfaces for managing identity information. See Collaboration Framework Reference. | |||
Contacts.framework | 10.11 | CN | Provides access to the Contacts store, which is a centralized database of user contact information. See Contacts Framework Reference. | |||
CoreAudio.framework | 10.0 | Audio | Contains the hardware abstraction layer interface for manipulating audio. See Core Audio Framework Reference. | |||
CoreBluetooth.framework | 10.10 | CB | Contains the classes used for communicating with Bluetooth Low Energy devices. See Core Bluetooth Framework Reference | |||
CoreAudioKit.framework | 10.4 | AU | Contains Objective-C interfaces for audio unit custom views. See CoreAudioKit Framework Reference. | |||
CoreData.framework | 10.4 | NS | https://cleverdogs387.weebly.com/blog/how-to-run-debug-app-mac. Contains interfaces for managing your app’s data model. See Core Data Framework Reference. | |||
CoreFoundation.framework | 10.0 | CF | Provides fundamental software services, including abstractions for common data types, string utilities, collection utilities, plug-in support, resource management, preferences, and XML parsing. See Core Foundation Framework Reference. | |||
CoreGraphics.framework | 10.0 | CG | Contains the Quartz interfaces for creating graphic content and rendering that content to the screen. See Core Graphics Framework Reference. | |||
CoreImage.framework | 10.4 | CI | An image processing and analysis technology designed to provide near real-time processing for still and video images. See Core Image Programming Guide. | |||
CoreLocation.framework | 10.6 | CL | Provides interfaces for determining the geographical location of a computer. See Core Location Framework Reference. | |||
CoreMedia.framework | 10.7 | CM | Contains low-level interfaces for for managing and and playing audio-visual media in an app. See Core Media Framework Reference. | |||
CoreMediaIO.framework | 10.7 | CMIO | Contains interfaces of the Device Abstraction Layer (DAL) used for creating plug-ins that can access media hardware. | |||
CoreMIDI.framework | 10.0 | MIDI | Contains utilities for implementing MIDI client programs. See Core MIDI Framework Reference. | |||
CoreMIDIServer.framework | 10.0 | MIDI | Deprecated in OS X v10.6. Use CoreMIDI.framework instead. | |||
CoreServices.framework | 10.0 | CF , DCS , MD , SK , WS | Umbrella framework for system-level services. See Core Services Framework. | |||
CoreText.framework | 10.5 | CT | Contains the interfaces for performing text layout and display. See Core Text Reference Collection. | |||
CoreVideo.framework | 10.5 | CV | Contains interfaces for managing video-based content. See Core Video Framework Reference. | |||
CoreWLAN.framework | 10.6 | CW | Contains interfaces for managing wireless networks. See CoreWLAN Framework Reference. | |||
CryptoTokenKit.framework | 10.10 | TK | Contains interface for using smart cards. See CryptoTokenKit Framework Reference. | |||
DirectoryService.framework | 10.0 | ds | Deprecated in OS X v10.6. Use OpenDirectory.framework instead. | |||
DiscRecording.framework | 10.2 | DR | Contains interfaces for burning data to CDs and DVDs. See Disc Recording Framework Reference. | |||
DiscRecordingUI.framework | 10.2 | DR | Contains the user interface layer for interacting with users during the burning of CDs and DVDs. See Disc Recording UI Framework Reference. | |||
DiskArbitration.framework | 10.4 | DA | Contains interfaces for getting information related to local and remote volumes. See Disk Arbitration Framework Reference. | |||
DrawSprocket.framework | 10.0 | DSp | Contains the game sprocket component for drawing content to the screen. | |||
DVComponentGlue.framework | 10.0 | IDH | Contains interfaces for communicating with digital video devices, such as video cameras. | |||
DVDPlayback.framework | 10.3 | DVD | Contains interfaces for embedding DVD playback features into your app. See DVD Playback Framework Reference. | |||
EventKit.framework | 10.8 | EK | Provides an interface for accessing a user’s calendar events and reminder items. See Event Kit Framework Reference. | |||
ExceptionHandling.framework | 10.0 | NS | Contains exception-handling classes for Cocoa apps. See Exception Handling Framework Reference. | |||
FinderSync.framework | 10.10 | FI | Provides API for enhancing the Finder’s user interface by adding badges, shortcut menu items, and toolbar buttons. See Finder Sync Framework Reference | |||
ForceFeedback.framework | 10.2 | FF | Contains interfaces for communicating with force feedback–enabled devices. See Force Feedback Framework Reference. | |||
Foundation.framework | 10.0 | NS | Contains the classes and methods for the Cocoa Foundation layer. If you are creating a Cocoa app, linking to the Cocoa framework is preferable. See Foundation Framework Reference. | |||
FWAUserLib.framework | 10.2 | FWA | Contains interfaces for communicating with FireWire-based audio devices. See FWAUserLib.h Reference. | |||
GameController.framework | 10.9 | GC | A collection of classes for discovering and interacting with connected game controllers. See Game Controller Programming Guide | |||
GameKit.framework | 10.8 | GK | Provides APIs that allow your app to participate in Game Center. See Game Kit Framework Reference. | |||
GLKit.framework | 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. See GLKit Framework Reference. | |||
GLUT.framework | 10.0 | glut , GLUT | Contains interfaces for the OpenGL Utility Toolkit, which provides a platform-independent interface for managing windows. | |||
GSS.framework | 10.7 | gss | Contains interfaces for Generic Security Services Application Program Interface (GSSAPI). | |||
Hypervisor.framework | 10.10 | hv | Allows virtualization vendors to build virtualization solutions on top of OS X without needing to deploy third-party kernel extensions (KEXTs). See Hypervisor Framework Reference. | |||
ICADevices.framework | 10.3 | ICD | Contains low-level interfaces for communicating with digital devices such as scanners and cameras. See Carbon Framework. | |||
ImageCaptureCore.framework | 10.6 | IC | Contains Objective-C interfaces for communicating with digital devices such as scanners and cameras. | |||
ImageIO.framework | 10.4 | CGImage | Contains interfaces for importing and exporting image data. | |||
IMServicePlugIn.framework | 10.7 | IM | Contains interfaces for building third-party plug-ins for Chat services. Umbrella framework for IMServicePlugInSupport.framework . | |||
InputMethodKit.framework | 10.5 | IMK | Contains interfaces for developing new input methods, which are modules that handle text entry for complex languages. See Input Method Kit Framework Reference. | |||
InstallerPlugins.framework | 10.4 | IFX | Contains interfaces for creating plug-ins that run during software installation sessions. See Installer JavaScript Reference. | |||
InstantMessage.framework | 10.4 | FZ , IM | Deprecated in OS X v10.9. Do not use. | |||
IOBluetooth.framework | 10.2 | IO | Contains interfaces for communicating with Bluetooth devices. | |||
IOBluetoothUI.framework | 10.2 | IO | Contains the user interface layer for interacting with users manipulating Bluetooth devices. | |||
IOKit.framework | 10.0 | IO , IOBSD , IOCF | Contains the main interfaces for creating user-space device drivers and for interacting with kernel-resident drivers from user space. See IOKitLib.h Reference. | |||
IOSurface.framework | 10.6 | IO | Contains low-level interfaces for sharing graphics surfaces between apps. See IOSurface Framework Reference. | |||
JavaFrameEmbedding.framework | 10.5 | N/A | Contains interfaces for embedding Java frames in Objective-C code. | |||
JavaScriptCore.framework | 10.5 | JS | Contains the library and resources for executing JavaScript code within an HTML page. (Prior to OS X v10.5, this framework was part of WebKit.framework . See JavaScriptCore Framework Reference. | |||
JavaVM.framework | 10.0 | JAWT , JDWP , JMM , JNI , JVMDI , JVMPI , JVMTI | Deprecated in OS X v10.7. Use Oracle Java instead. | |||
Kerberos.framework | 10.0 | GSS , KL , KRB , KRB5 | Contains interfaces for using the Kerberos network authentication protocol. | |||
Kernel.framework | 10.0 | numerous | Contains the interfaces for kernel-extension development, including Mach, BSD, libkern , I/O Kit, and the various families built on top of I/O Kit. See Kernel Framework Reference. | |||
LatentSemanticMapping.framework | 10.5 | LSM | Contains interfaces for classifying text based on latent semantic information. See Latent Semantic Mapping Reference. | |||
LDAP.framework | 10.0 | N/A | Do not use. | |||
LocalAuthentication.framework | 10.10 | LA | Contains API for requesting authentication from users using specified policies. See Local Authentication Framework Reference | |||
MapKit.framework | 10.9 | MK | Provides classes and protocols for embedding maps into the windows and views of your apps. Includes support for annotations, overlays, and reverse-geocoding lookups. See Map Kit Framework Reference | |||
MediaAccessibility.framework | 10.9 | MA | Provides API to access user preferences for captions that can accompany media, such as closed captioning. See Media Accessibility Framework Reference | |||
MediaLibrary.framework | 10.9 | ML | Provides a read-only data model representing a user’s collections of images, audio, and video. See Media Library Framework Reference | |||
Message.framework | 10.0 | AS , MF , PO , POP , RSS , TOC , UR , URL | Contains Cocoa extensions for mail delivery. | |||
Metal.framework | 10.11 | MTL | Provides GPU-accelerated 3D graphics rendering and> MetalKit.framework | 10.11 | MTK | Contains functions and classes that reduce the effort required to create a Metal application. See MetalKit Framework Reference and MetalKit Functions Reference. |
ModelIO.framework | 10.11 | MDL | Provides classes that support import, export, and editing of 3D model assets and related resources. See ModelIO Framework Reference. | |||
MultipeerConnectivity.framework | 10.10 | MC | Contains API for finding and communicating with services provided by nearby devices using infrastructure Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth personal area networks. See Multipeer Connectivity Framework Reference. | |||
NetFS.framework | 10.6 | NetFS | Contains interfaces for working with network file systems. | |||
NetworkExtension.framework | 10.11 | NE, NW | Provides support for configuring and controlling Virtual Private Network (VPN) tunnels. See Network Extension Framework Reference. | |||
NotificationCenter.framework | 10.10 | NC, NS | Contains the interfaces for creating and managing extensions in the Today view of the Notification Center. See Notification Center Framework Reference | |||
OpenAL.framework | 10.4 | AL | Contains the interfaces for OpenAL, a cross-platform 3D audio delivery library. | |||
OpenCL.framework | 10.6 | CL , cl | Contains the interfaces for distributing general-purpose computational tasks across the available GPUs and CPUs of a computer. See OpenCL Programming Guide for Mac. | |||
OpenDirectory.framework | 10.6 | OD | Contains Objective-C interfaces for managing Open Directory information. See Open Directory Programming Guide. | |||
OpenGL.framework | 10.0 | CGL , GL , glu , GLU | Contains the interfaces for OpenGL, which is a cross-platform 2D and 3D graphics rendering library. See OpenGL Programming Guide for Mac. | |||
OSAKit.framework | 10.4 | OSA | Contains Objective-C interfaces for managing and executing OSA-compliant scripts from Cocoa apps. | |||
PCSC.framework | 10.0 | MSC , Scard , SCARD | Contains interfaces for interacting with smart card devices. | |||
PreferencePanes.framework | 10.0 | NS | Contains interfaces for implementing custom modules for the System Preferences app. See Preference Panes Framework Reference. | |||
PubSub.framework | 10.5 | PS | Contains interfaces for subscribing to RSS and Atom feeds. See Publication Subscription Framework Reference. | |||
QTKit.framework | 10.4 | QT | Deprecated in OS X v10.9. Use AVFoundation.framework instead. | |||
Quartz.framework | 10.4 | GF , PDF , QC , QCP | Itunes dj app mac. Umbrella framework for Quartz services. See Quartz Framework. | |||
QuartzCore.framework | 10.4 | CA ,CI , CV | Contains the interfaces for Core Image, Core Animation, and Core Video. See Quartz Core Framework Reference. | |||
QuickLook.framework | 10.5 | QL | Contains interfaces for generating thumbnail previews of documents. See Quick Look Framework Reference for Mac. | |||
QuickTime.framework | 10.0 | N/A | Deprecated in OS X v10.9. Use AVFoundation.framework and AVKit.framework instead. | |||
Ruby.framework | 10.5 | N/A | Contains interfaces for the Ruby scripting language. | |||
SceneKit.framework | 10.8 | SCN | Provides a high-level, Objective-C API to efficiently load, manipulate, and render 3D scenes in an app. See SceneKit Framework Reference. | |||
ScreenSaver.framework | 10.0 | N/A | Contains interfaces for writing screen savers. See Screen Saver Framework Reference. | |||
Scripting.framework | 10.0 | NS | Deprecated. Use Foundation.framework instead. | |||
ScriptingBridge.framework | 10.5 | SB | Contains interfaces for running scripts from Objective-C code. See Scripting Bridge Framework Reference. | |||
Security.framework | 10.0 | CSSM , Sec | Contains interfaces for system-level user authentication and authorization. See Security Framework Reference. | |||
SecurityFoundation.framework | 10.3 | Sec | Contains Cocoa interfaces for authorizing users. See Security Foundation Framework Reference. | |||
SecurityInterface.framework | 10.3 | PSA , SF | Contains the user interface layer for authorizing users in Cocoa apps. See Security Interface Framework Reference. | |||
ServiceManagement.framework | 10.6 | SM | Contains interfaces for loading, unloading and managing launchd services. See Service Management Framework Reference. | |||
Social.framework | 10.8 | SL | Provides an API for sending requests to supported social networking services that can perform operations on behalf of users. See Social Framework Reference. | |||
SpriteKit.framework | 10.9 | SK | Provides API for animating arbitrary textured images, or sprites. It includes sound playback, a physics engine, and a rendering loop. See SpriteKit Programming Guide | |||
StoreKit.framework | 10.7 | SK | Supports requesting payment from a user to purchase additional functionality or content from the Mac App Store. See Store Kit Framework Reference. | |||
SyncServices.framework | 10.4 | ISync | Deprecated in OS X v10.7. Use Contacts.framework or Calendar.framework instead. | |||
System.framework | 10.0 | N/A | Do not use. | |||
SystemConfiguration.framework | 10.0 | SC | Contains interfaces for accessing network configuration and reachability information. See System Configuration Framework Reference. | |||
Tcl.framework | 10.3 | Tcl | Contains interfaces for accessing the system’s Tcl interpreter from an app. | |||
Tk.framework | 10.4 | Tk | Contains interfaces for accessing the system’s Tk toolbox from an app. | |||
TWAIN.framework | 10.2 | TW | Contains interfaces for accessing TWAIN-compliant image-scanning hardware. | |||
vecLib.framework | 10.0 | N/A | Deprecated. Use Accelerate.framework instead. See Accelerate Framework. | |||
VideoDecodeAcceleration.framework | 10.7 | VDA | Deprecated in OS X v10.11. Use VideoToolbox.framework instead. | |||
VideoToolbox.framework | 10.8 | VT | Comprises the 64-bit replacement for the QuickTime Image Compression Manager. | |||
WebKit.framework | 10.2 | DOM , Web | Umbrella framework for rendering HTML content. See WebKit Framework. | |||
XgridFoundation.framework | 10.4 | XG | 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 |
---|---|
vecLib.framework | Contains vector-optimized interfaces for performing math, big-number, and DSP calculations, among others. |
vImage.framework | Contains vector-optimized interfaces for manipulating image data. |
Application Services Framework
Table A-3 lists the subframeworks of the Application Services framework (
ApplicationServices.framework
) that are not links to top level frameworks. 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 |
---|---|
ATS.framework | Deprecated in OS X v10.8. Use CoreText.framework instead. |
ColorSync.framework | Contains interfaces for color matching using ColorSync. |
HIServices.framework | Contains interfaces for accessibility, Internet Config, the pasteboard, the Process Manager, and the Translation Manager. Available in OS X v10.2 and later. |
LangAnalysis.framework | Contains the Language Analysis Manager interfaces. |
PrintCore.framework | Contains the Core Printing Manager interfaces. |
QD.framework | Contains the QuickDraw interfaces. |
SpeechSynthesis.framework | Contains the Speech Manager interfaces. |
Automator Framework
Table A-4 lists the subframeworks of the Automator framework (
Automator.framework
). Subframework | Description |
---|---|
MediaBrowser.framework | 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 |
---|---|
CarbonSound.framework | Deprecated in OS X v10.5. Use CoreAudio.framework instead. |
CommonPanels.framework | Contains interfaces for displaying the Font window, Color window, and some network-related dialogs. |
Help.framework | Contains interfaces for launching and searching Apple Help. |
HIToolbox.framework | Deprecated in OS X v10.7. Use Cocoa.framework instead. |
HTMLRendering.framework | Contains interfaces for rendering HTML content. The WebKit framework is the preferred framework for HTML rendering. See WebKit Framework. |
ImageCapture.framework | Contains interfaces for capturing images from digital cameras. This framework works in conjunction with the Image Capture Devices framework ( ICADevices.framework ). |
Ink.framework | Contains interfaces for managing pen-based input. (Ink events are defined with the Carbon Event Manager.) |
NavigationServices.framework | Contains interfaces for displaying file navigation dialogs. |
OpenScripting.framework | Contains interfaces for writing scripting components and interacting with those components to manipulate and execute scripts. |
Print.framework | Contains the Carbon Printing Manager interfaces for displaying printing dialogs and extensions. |
SecurityHI.framework | Deprecated in OS X v10.9. Use Security.framework instead. |
SpeechRecognition.framework | 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 |
---|---|
AE.framework | Contains interfaces for creating and manipulating Apple events and making apps scriptable. How to apply grammarly to mac email app. |
CarbonCore.framework | 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). |
DictionaryServices.framework | Provides dictionary lookup capabilities. |
FSEvents.framework | Provides a mechanism to notify clients about directories to re-scan to keep internal data structures up-to-date with the true state of the file system. |
LaunchServices.framework | Contains interfaces for launching apps. |
Metadata.framework | Contains interfaces for managing Spotlight metadata. |
OSServices.framework | Contains interfaces for Open Transport and many hardware-related legacy Carbon managers. |
SearchKit.framework | Contains interfaces for the Search Kit. |
Quartz Framework
Table A-7 lists the subframeworks of the Quartz framework (
Quartz.framework
). C++ Web Application Framework
![Application_name.app Contents Frameworks Mac Application_name.app Contents Frameworks Mac](/uploads/1/3/4/1/134139924/552661993.jpg)
Subframework | Description |
---|---|
ImageKit.framework | Contains Objective-C interfaces for finding, browsing, and displaying images. |
PDFKit.framework | Contains Objective-C interfaces for displaying and managing PDF content. |
QuartzComposer.framework | Contains Objective-C interfaces for playing Quartz Composer compositions in an app. |
QuartzFilters.framework | Contains Objective-C interfaces for managing and applying filter effects to a graphics context. |
QuickLookUI.framework | 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 |
---|---|
WebCore.framework | 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 |
---|---|---|---|
XCTest.framework | Xcode 5 | XC | 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.
Copyright © 2004, 2015 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2015-09-16
If a prospective customer downloads your software onto Mac OS X 10.8 and it hasn’t been signed, they will see a scary warning:
Not good. To run unsigned software they need to go into Mac OS X Preferences>Security & Privacy>General and change Allow applications downloaded from Mac App store and identified developers to Anywhere:
Or they need to right/Ctrl click and see another scary warning. Double plus not good. This is the new Mac Gatekeeper system in action. Apple being Apple, Gatekeeper defaults to only allowing users to run software they have downloaded off the Internet if it has been signed. This could have a big effect on your conversion rate on Mac. So if you are shipping software for the Mac, you really need to sign it.
Apple fanboys will tell this is a sensible way for Apple to control software quality. A valid certificate shows that your software hasn’t been tampered with and, if it turns out to be malware, Apple can revoke your certificate. The more cynical might see it as a way for Apple to exert even greater control over Mac developers than it already does, while simultaneously extorting $99 per year from each and every one of them. Make your own mind up on that one.
I have now managed to sign my table planner software, ready for its next release. I should have done it months ago. But I expected the process to be so tedious that it has taken me this long to get around to it. And it was every bit as mind-numbingly tedious as I expected trying to find a few useful nuggets amongst the acres of Apple documentation. I found some useful stuff in blogs, but it was quite fragmented. So I have thrown together these notes in the hope that it saves someone else a few hours going round in circles. Note that I am not currently submitting my software to the Mac App Store, so I don’t cover that here. Also my software is developed in C++/Qt using Qt Creator, rather than Objective-C/Cocoa using XCode, and my approach reflects that.
1. Sign up for Apple Developer Connection ($99 per year). Doesn’t matter if you already paid through the nose for a Windows authenticode certificate. Gatekeeper only accepts Apple certificates, so you have no choice. On the plus side, you do get other benefits, including downloading new OS upgrades for free.
2. You need Mac OS X 10.8 so you can test that your signing works. If you have an Apple Developer Connection subscription, you can download 10.8 for free (get a code from the ADC downloads area and using it in the Mac App Store). I found the upgrade from 10.6 to 10.8 was surprisingly painless (Microsoft eat your heart out).
3. Request your Apple certificates and install them into your Keychain. You can do this from Xcode (instructions here). You may need to upgrade Xcode to a recent version.
4. Use the codesign command line tool to sign:
- Every framework in your .app bundle
- Every plugin in your .app bundle
- Your .app file
I believe you can do this as part of your Xcode build. But I prefer a shell script. For example:
echo --sign frameworks --
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/QtSql.framework/Versions/4/QtSql
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/QtXml.framework/Versions/4/QtXml
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Frameworks/Qt3Support.framework/Versions/4/Qt3Support
echo --sign plugins--
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/accessible/libqtaccessiblecompatwidgets.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/accessible/libqtaccessiblewidgets.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/bearer/libqcorewlanbearer.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/bearer/libqgenericbearer.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/codecs/libqcncodecs.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/codecs/libqjpcodecs.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/codecs/libqkrcodecs.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/codecs/libqtwcodecs.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/graphicssystems/libqtracegraphicssystem.dylib
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app/Contents/Plugins/imageformats/libqjpeg.dylib
echo --sign app--
codesign --force --verify --verbose --sign 'Developer ID Application: <yourID>' <yourApp>.app
I do this in a build shell script that automates the whole process of creating a .dmg for download. I’m not sure if the order you sign the components in is important.
Note that:
- <yourID> is the ID on your certificate (in my case “Oryx Digital Ltd”).
- For frameworks you sign the folder, not the file.
- Any changes to the .app bundle after signing may invalidate the signature (that is kind of the point).
5. Verify the signing of the .app file. For example:
codesign -vvv -d <yourApp>.app
6. Package your .app into a .dmg, .zip, .pkg or whatever other format you use to install it (I believe .pkg files might require additional signing with a different certificate).
7. Make sure your Mac OS X 10.8 machine is set to the default Gatekeeper setting.
8. Download your software onto Mac OS X 10.8 and check if the scary warning has gone away.
9. Pray that Apple doesn’t decide to revoke your certificate at some point for an infraction, real or imagined.
Until you have released a signed version you can put up a warning with some simple Javascript, for example:
Further reading:
Qt related:
Java related:
Thanks to Jonathan of DeepTrawl and Stephane of LandlordMax for some useful pointers.
What Is Application Framework
************** Update **************
Best Mobile App Framework
Things have changed again for Mac OS X 10.9/10.10. See this post for an update.