3 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
This article explains how macOS applications are organized within a bundle structure, detailing the various directories and files that make up an app. It highlights the evolution from Classic Mac OS to macOS, including the introduction of code signatures and notarization for security. The piece also outlines the benefits of this centralized approach for installation and maintenance.
If you do, here's more
MacOS applications have evolved significantly since the days of Classic Mac OS, moving from a single-file resource model to a more complex bundle structure. In Classic Mac OS, resources like windows and menus were stored in a resource fork. The transition to Mac OS X introduced app bundles, which are directories that contain all necessary files, including executable code and resources. Each app bundle has a .app extension and organizes files into specific directories, such as MacOS for executables and Resources for icons and GUI components. Essential files like Info.plist specify key details about the app, including version requirements and document types.
The introduction of code signatures in Mac OS X 10.5 Leopard added another layer of complexity and security. App bundles now include a _CodeSignature directory for integrity checks and, for apps distributed through the App Store, a _MASReceipt directory. Since 2018, notarization has been implemented, allowing Apple to issue a 'ticket' that can be included in the app bundle, enhancing security further. Additional directories such as Library, XPCServices, and Plugins allow apps to maintain necessary components without cluttering system-wide directories.
Overall, app bundles centralize resources, making apps easier to install, update, and remove. They reduce the risk of missing components and improve security through notarization and code signing. The structure of these bundles remains consistent across Intel and Arm architectures, allowing for Universal apps that contain platform-specific code within a single executable file. This evolution reflects a shift towards a more organized and secure environment for macOS applications.
Questions about this article
No questions yet.