A bundle is a structured directory of various resource files that can be packaged to appear as a single file to the user, often an application program. This is an important level of abstraction used by NeXTSTEP, OpenStep, and their derivatives, such as Mac OS X (now macOS) and iOS, as well as GNUstep, to simplify the presentation of complex software files to casual users, who may otherwise rearrange or remove files, causing the software to fail to run properly. It is Mac OS X's conceptual successor to resource forks from classic Mac OS.
A packaged application bundle will contain an alias at the top level to an executable within the directory structure, initiating the launching of the software. Such a bundle will also include an information property list file (Info.plist), outlining the bundle's contents. When a developer creates a project in Xcode from a template, a bundle with the required structure will be automatically created.
External links
- Bundle Programming Guide at Apple Developer (2017-03-27)
- Document Packages
- Resource Forks, Bundles, etc. by jccleaver at LWN.net (2019-01-07)