I seemingly see the words package and bundle used interchangeably in Apple documentation referring to a special folder in the file system that the user sees as document (iWork Pages document) or application (Pages.app). I know one can view the contents of a package or bundle by right clicking on one of these special files and clicking Show Package Contents. Which suggests to me that both are are a type of package. So is a bundle a special type of package?

2 Answers 2


From Apple's Bundle Programming Guide

Although bundles and packages are sometimes referred to interchangeably, they actually represent very distinct concepts:

A package is any directory that the Finder presents to the user as if it were a single file.
A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.


The Finder considers a directory to be a package if any of the following conditions are true:

The directory has a known filename extension: .app, .bundle, .framework, .plugin, .kext, and so on.
The directory has an extension that some other application claims represents a package type; see Document Packages.
The directory has its package bit set.

In code with bundles and packages are manipulated by the same NSBundle class


A package and a bundle have/have had similar structure. A package is a "file" that is operated on by the OSX Installer. These days packages have been flatten into an xar archives. Packages are also "files" created by some Apple applications, where the file is actually a directory with multiple supporting files. A bundle contains executable code, an application (.app) is a bundle. Plugins are also bundles.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .