Important: The information in this document is obsolete and should not be used for new development.
Who Should Read This Document
Organization of This Document
Software Distribution describes how to distribute your Mac OS X software and allow users to conveniently install it.
Important: This document has not been updated for Mac OS X v10.4. Most of the information is still accurate, but in some cases the behavior has changed, particularly with regard to the PackageMaker application. See Installer Release Notes for details on new features in Mac OS X v10.4.
Most Mac OS X software is distributed on CD or by Internet downloads, which are often provided as compressed disk images or in other archive formats. In the simplest case, you can set up your software so that users simply drag it from a CD or mounted disk image to the appropriate location on their hard disks. Apple recommends this type of installation whenever possible. For details and limitations, see “Drag-and-Drop Installation.” For additional information on working with disk images, see “Distributing Software With Internet-Enabled Disk Images.”
For software with more complex installation requirements, you can create an installation package with the PackageMaker application and let users install it with the Installer application. (Installer, located in /Applications/Utilities
, is the native installer for Mac OS X. PackageMaker is installed with the Xcode tools and is located in /Developer/Applications/Utilities
.) Software Distribution, along with the PackageMaker Help documentation, provides the information you’ll need for this type of installation. For more information, see “Package-Based Installation.”
In some business and education environments, administrators can benefit by using a remote installation process. The Apple Remote Desktop application allows an administrator to simultaneously install software from a central location to multiple Macintosh computers, whether the software is prepared for “drag and drop” installation or is packaged by PackageMaker. For more information, see http://www.apple.com/remotedesktop/.
Although Software Distribution generally describes how to distribute and install applications, most of the information can be applied to frameworks, tools, kernel extensions, and other kinds of software. For a tutorial on how to install software with PackageMaker and Installer, including specific information on working with kernel extensions, see “Packaging Your KEXT for Distribution and Installation” in Darwin Documentation.
This document is intended for developers who need to distribute Mac OS X software. It assumes that you have some familiarity with the information about application packaging in Bundle Programming Guide in Core Foundation Resource Management.
Software Distribution does not describe installation for versions of the Mac OS prior to Mac OS X. The package-based techniques it describes are not intended for software installation on UNIX-based systems other than Mac OS X.
For specific limitations of the software, see “Limitations of PackageMaker and Installer.”
Software Distribution includes these articles:
“Software Distribution Guidelines” provides tips on the installation process, such as when to use drag-and-drop installation and when you might need to work with PackageMaker and Installer.
“Distributing Software With Internet-Enabled Disk Images” describes a mechanism for working with disk images that can provide an enhanced user experience in downloading files.
“A Quick Look at PackageMaker and Installer” describes terminology and concepts that will help you work effectively with packages.
“About Packages” describes the basic steps you typically use to create and test a package.
“Installs and Upgrades” defines the difference between an install and an upgrade and explains differences in how they are handled by Installer.
“PackageMaker and Installer Features” describes the major features available in PackageMaker and Installer. For some features, it points to other sections for more detailed information.
“Creating a Package” provides a detailed look at the steps involved in packaging your software.
“The Installation Process” lists the steps Installer takes during an installation, including a detailed list of the order in which executable files within a package are executed.
“Customizing What Installer Shows to the User” describes how you can customize parts of the Installer application’s interface with the information and resources you build into your installation package.
“Anatomy of a Package” provides a detailed description of the contents of a package.
“Anatomy of a Metapackage” provides a detailed description of the contents of a metapackage.
“Authorization, File Ownership, and Permissions” describes the support in PackageMaker and Installer for requiring and performing authorization and for specifying file ownership and permissions.
“Examining and Modifying Property Lists” describes how to examine and directly modify the Installer keys that are used to store installation information in a package. It also provides reference for the Installer keys that you can add or modify.
“Finding Previously Installed Software” describes how you can you provide Installer with rules to help it find and upgrade software from a previous installation.
“Specifying Version Information for Packaged Software” describes how you can supply information to help Installer determine which files need to be replaced during an upgrade.
“Specifying Installation Requirements” describes how to insert information into the information property list for a package to request or require that certain hardware or software criteria be satisfied before the package is installed.
“Checking the Installation With InstallationCheck” describes how you can supply an executable file in your installation package that checks criteria you are interested in and disallows installation on systems that do not satisfy the criteria.
“Checking the Installation Volume With VolumeCheck” describes how you can supply an executable file in your installation package that checks volume criteria and disallows installation on volumes that do not satisfy the criteria.
“Modifying an Installation With Scripts” describes how you can supply script files (or other executables) that Installer executes at specified times during an installation.
“Troubleshooting Packages and Installation” provides tips for working with scripts, as well as a question-and-answer section on some common installation issues.
“Topic Revision History” describes changes made to this document.
© 2003, 2006 Apple Computer, Inc. All Rights Reserved. (Last updated: 2006-07-24)