May 26, 2020 If your Mac is using an earlier version of any Mac operating system, you should install the latest Apple software updates, which can include important security updates and updates for the apps installed by macOS, such as Safari, Books, Messages, Mail, Music, Calendar, and Photos.
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. |
In NeXTSTEP, OPENSTEP, GNUstep, and their lineal descendants macOS and iOS, a bundle is a file directory with a defined structure and file extension, allowing related files to be grouped together as a conceptually single item.
Examples of bundles that contain executable code include applications, frameworks, and plugins. This kind of bundle usually contains one file representing executable code, and files that represent resources such as nibs, templates, images, sounds, and other media. On some other systems, such as Microsoft Windows, these resources are usually included directly in the executable file itself at compile time. On older Macintoshes, a similar technique is used, where additional metadata can be added to a file's resource fork. Similar in concept are the application directories used in RISC OS and on the ROX Desktop.
Examples of bundles that do not contain executable code include document packages (iWork documents) and media libraries (iPhoto Library).
Bundles are programmatically accessed with the 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]
Application bundles[edit]
Filename extension | |
---|---|
Uniform Type Identifier (UTI) | com.apple.application-bundle |
Type of format | application software |
Container for | executable binary |
Extended from | Bundle |
Application bundles are directory hierarchies, with the top-level directory having a name that ends with a .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.
Among other things, the Resources
folder contains localized versions of the application's nib files.
Other common subdirectories include 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.
By default, the Finder displays application bundles, which can also be referred to as packages, as opaque files with no underlying structure; the contents of the bundle can be shown with the 'Show Package Contents' context menu item.
GNUstep by default uses the name of the application to name the folder that contains application code. An alternative is to name them by the computer architecture and OS the code is intended for to form a fat binary, so the application can be opened on many platforms.[3][4]
macOS framework bundles[edit]
Filename extension | .framework |
---|---|
Uniform Type Identifier (UTI) | com.apple.framework |
Extended from | bundle |
macOS frameworks are also stored as bundles; the top-level directory of a framework bundle has a name that is the name of the framework followed by the extension .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
.[5]
The Finder displays framework bundles as directories rather than as opaque files.
Although GNUstep uses frameworks, they are not usually stored as bundles. This is because the full semantics of framework loading are considered too alien to other platforms.[6]
Loadable bundles[edit]
Loadable bundles are bundles which contain code that can be loaded at runtime.[7] Loadable bundles usually have the extension .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[8] and Apple Mail.[9][10] A feature inherited from NeXTSTEP, GNUstep has the -[NSBundle principalClass]
interface too.
By default, the Finder displays loadable bundles, which can also be referred to as packages, as opaque files with no underlying structure; the contents of the bundle can be shown with the 'Show Package Contents' context menu item.
Other bundle formats[edit]
Older Mac Os X Software
There are many third-party macOS applications which utilize their own custom bundle format (e.g. CandyBar.iContainer
, Aperture.aplibrary
, VMware Fusion.vmwarevm
, etc.).
.lproj[edit]
An .lproj file is a bundle that contains localization files for OpenStep, macOS, or GNUstep software. It typically contains the .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.
See also[edit]
- Application Directory — the RISC OS analogue to an application bundle
- AppImage — A Linux application that makes use of similar principles
References[edit]
- ^'Information Property List - Bundle Resources'. Apple Developer Documentation.
- ^'System-Declared Uniform Type Identifiers'. Uniform Type Identifiers Reference. Apple Inc. Retrieved 2012-06-10.
- ^'PackagingDrafts/GNUstep'. Fedora Project Wiki.
- ^'gnustep/tools-make: README.Packaging'. GitHub.
- ^'Anatomy of Framework Bundles'. Apple Inc. Retrieved 2011-09-03.
- ^'User FAQ'. GNUstep.
- ^Code Loading Programming Topics for Cocoa: About Loadable Bundles
- ^'Pimp My Safari: plugins'. Archived from the original on 2007-10-31.
- ^'Apple Mail plug-ins and tools'.
- ^'Hawk Wings — Plug-ins for Apple Mail'. Archived from the original on 2007-08-31.
External links[edit]
- Bundle Programming Guide at Apple Developer Connection
- NSBundle documentation from the GNUstep project
- Platypus — a tool to create application bundles around scripts
Is your Mac up to date with the latest version of the Mac operating system (macOS or OS X)? Is it using the version required by some product or feature? Which versions are earlier (older) or later (newer, more recent) than the version currently installed? To find out, learn which version is installed now.
If your macOS isn't up to date, you may be able to update to a later version.
Which macOS version is installed?
From the Apple menu in the corner of your screen, choose About This Mac. You'll see the macOS name, such as macOS Mojave, followed by its version number. If some product or feature requires you to know the build number as well, click the version number to see it.
Mac Os X Download
This example shows macOS Catalina version 10.15 build 19A583.
Which macOS version is the latest?
These are all Mac operating systems, starting with the most recent. When a major new macOS is released, it gets a new name, such as macOS Catalina. And as updates that change the macOS version number become available, this article is updated to show the latest version of that macOS.
If your Mac is using an earlier version of any Mac operating system, you should install the latest Apple software updates, which can include important security updates and updates for the apps installed by macOS, such as Safari, Books, Messages, Mail, Music, Calendar, and Photos.
Apple Software Bundle
macOS | Latest version |
---|---|
macOS Catalina | 10.15.5 |
macOS Mojave | 10.14.6 |
macOS High Sierra | 10.13.6 |
macOS Sierra | 10.12.6 |
OS X El Capitan | 10.11.6 |
OS X Yosemite | 10.10.5 |
OS X Mavericks | 10.9.5 |
OS X Mountain Lion | 10.8.5 |
OS X Lion | 10.7.5 |
Mac OS X Snow Leopard | 10.6.8 |
Mac OS X Leopard | 10.5.8 |
Mac OS X Tiger | 10.4.11 |
Mac OS X Panther | 10.3.9 |
Mac OS X Jaguar | 10.2.8 |
Mac OS X Puma | 10.1.5 |
Mac OS X Cheetah | 10.0.4 |
Mac Os X Software Bundles 2017
Learn more
- Always use the macOS that came with your Mac, or a compatible newer version.
- Learn how to reinstall macOS from macOS Recovery.