Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid.
This document describes the process of packaging and delivering a software product so that it can be installed on a user’s computer. The two major methods of delivering software are manual installs and managed installs.
A manual install is the preferred delivery solution because it offers the simplest install experience for small or compact products, such as a single application package. For example, to install an application, a user may drag the application package from a CD onto a folder of their choosing.
For more complex products, managed installs let you define every aspect of the install experience, including making sure the target computer meets specific requirements. Managed installs are generally used with products comprising several components to tailor the installation of each component depending on its kind. A managed install uses installer packages that define an install experience. When users open such packages, the Installer application guides them through the installation process and copies the product files to the appropriate locations on their file system.
Network administrators can use a type of managed install, a remote install, to install a product on several networked computers using Remote Desktop. No user interaction occurs in this type of install.
This document is meant to provide software delivery guidelines to product developers, product packagers, and network administrators.
Product developers create products or product components (such as applications, frameworks, plug-ins, and so on) using development tools such as Xcode.
Product packagers devise a delivery solution for an entire product.
Network administrators manage a group of networked computers and may need to install the same software on several computers remotely.
Organization of This Document
This document contains the following chapters and appendixes:
Overview of Software Delivery introduces the major software delivery mechanisms used in Mac OS X: manual installs and managed installs. It also explains remote installs, which network administrators use to install products on several computers on a network.
Product Containers introduces general product delivery mechanisms that can be used in manual installs and managed installs. This chapter shows how to create a disk image for a standalone product. This chapter also shows how to create Internet-enabled disk images, which streamline manual installs. This chapter is especially useful to product packagers.
Manual Installs describes manual installs and provides an example of a simple product that should be installed manually. Product developers and packagers should read this chapter.
Managed Installs lists the major features managed installs provide, and explains when managed installs are appropriate. This chapter describes the three types of installation package and how they are processed by the Installer application. This chapter also describes the managed installation process and user experience. This information is useful to product packagers and network administrators.
Packaging Product Components explains how to create an installation package for a product component or a single-component product for a remote install.
Defining a Managed Install explains how to create an install experience using a distribution package or a metapackage. Also shows how to create a hybrid metapackage. This information is useful to product packagers and network administrators.
Specifying Install Operations explains how to define install operations for a managed install. This information is useful to product packagers and network administrators.
Performing Remote Installs provides an overview of remote installs and an example of one. This chapter is targeted to network administrators.
Specifying System and Volume Requirements in Pre-Tiger Systems explains how to define installation requirements using executable files. This information is useful to product packagers and network administrators.
Prebinding Applications explains when an application may benefit from having its prebinding information updated after a manual install. Product developers and packagers may find this information useful.
Preserving Resource Fork Data provides an overview of resource forks and explains how the PackageMaker and Installer applications handle payloads that include files with embedded resource forks instead of separate resource files. Product developers and packagers may find this information useful.
File System Overview describes the Mac OS X file system and its domains. Knowledge of the Mac OS X directory hierarchy is paramount when packaging multicomponent products.
Runtime Configuration Guidelines explains the keys used in
Info.plistfiles to specify some product properties, such as version and identifier. These properties are required when packaging products to create a managed install.
Bundle Programming Guide describes Mac OS X bundles and file packages, which are used extensively in Mac OS X.
Apple Remote Desktop Administrator's Guide Version 2.2 explains how to use Remote Desktop to manage a set of networked computers.