Other meanings of Bundle
Software
In macOS and other Apple operating systems, a bundle is a directory with a defined structure that groups executable code and the resources it needs into a single, self-contained package. The system treats the bundle as a single file for many operations, simplifying installation, distribution, and version management. Bundles are used for applications, frameworks, plug-ins, and system extensions, and they form the basis of the app bundle format used by macOS applications.
A bundle is a directory that follows a prescribed layout, typically containing an Info.plist file, an executable, and subdirectories for resources such as images, sounds, and localized strings. The Info.plist holds metadata like the bundle identifier, version, and supported document types. The system uses this structure to locate code and resources without requiring a global registry, making bundles portable and easy to manage. For example, an application bundle has a Contents folder with MacOS (executable), Resources, and Frameworks subdirectories.
The bundle concept originated in NeXTSTEP, the operating system developed by NeXT in the late 1980s, and was carried into macOS when Apple acquired NeXT in 1997. Early bundles used a flat file format, but with the advent of macOS X, they became directories. Over time, Apple extended the concept to include frameworks (dynamic shared libraries with resources) and plug-ins (loadable bundles). The Bundle Programming Guide documents these formats, and the NSBundle class provides a programmatic interface for accessing bundle contents.
Besides application bundles, macOS uses several specialized bundle types. Framework bundles package a dynamic library and its headers, resources, and documentation. Plug-in bundles (e.g., .plugin, .bundle) allow applications to load code at runtime. System extensions and kernel extensions also use bundle structures. Additionally, XPC services are bundles that run as separate processes for security and stability. Each type has a specific extension and layout, but all share the core concept of a self-contained directory.
One lesser-known fact is that bundles can be flat or modern; the flat format was used in early macOS versions and is still supported for backward compatibility. Another is that the Info.plist can contain a CFBundleDocumentTypes array that declares which file types the app can open, enabling automatic association. Also, the NSBundle class can load code from bundles at runtime, which is how many apps implement plug-in architectures. Finally, the Bundle concept is not limited to macOS—it is also used in iOS, watchOS, and tvOS, though with stricter rules.
Bundles are a fundamental part of Apple's software ecosystem, enabling modular and maintainable software distribution.
Help improve the encyclopedia. Reports go straight to the site manager.