Filename extension | .app, .framework, .kext, .plugin, .docset, .xpc, .qlgenerator, .component, .saver, .mdimporter, etc. |
---|---|
Uniform Type Identifier (UTI) | com.apple.bundle |
Container for | executable binary, metadata, other bundles, any other file needed to run the application. |
NSBundle
class in Cocoa, NeXTSTEP and GNUstep's Foundation frameworks, and with CFBundle
in Core Foundation. Bundles often include an Info.plist file for metadata.[1] The Uniform Type Identifier (UTI) for an Apple bundle is com.apple.bundle
.[2]Filename extension | |
---|---|
Uniform Type Identifier (UTI) | com.apple.application-bundle |
Type of format | application software |
Container for | executable binary |
Extended from | Bundle |
.app
extension. In an application bundle, the first directory in the bundle underneath the top-level directory is usually named Contents
. Within Contents
there is usually another directory (called MacOS
on Macs), which contains the application's executable code. Within the Contents
folder there is usually also a directory called Resources
, which contains the resources of the application. Resources
folder contains localized versions of the application's nib files.Plugins
, Frameworks
, and Shared Frameworks
. The Frameworks
directory contains frameworks used by the application, and are used even if another version of the framework exists on the system. The Shared Frameworks
directory contains frameworks that can be used both by the application that contains them, and other applications; they are used only if a newer version does not exist elsewhere on the system. Plugins
contains extensible code used by the application.Filename extension | .framework |
---|---|
Uniform Type Identifier (UTI) | com.apple.framework |
Extended from | bundle |
.framework
. In the top-level directory is a Versions
directory, with subdirectories for one or more versions of the framework, each subdirectory containing the dynamic library code for the framework, in a file whose name is the same as the name of the framework, possibly with a Headers
folder containing header files for the framework, and other subfolders such as Resources
. The Versions
directory also contains a symbolic link Current
to the directory for the current version of the framework. In the top-level directory are symbolic links to the contents of Versions/Current
.[6].bundle
, and are most often used as plug-ins. On macOS, there is a way to load bundles even into applications that do not support them, allowing for third party hacks for popular applications, such as Safari[9] and Apple Mail.[10][11] A feature inherited from NeXTSTEP, GNUstep has the -[NSBundle principalClass]
interface too..iContainer
, Aperture.aplibrary
, VMware Fusion.vmwarevm
, etc.)..nib
files for a given language along with .strings
files and images if needed (for example, ReadMe or license files). These localized files are used by installer makers to customize install packages. They are also included in an application bundle.