Creating MAC OSX packages for distribution:
By: Chris Roberts email@example.com
The PackageMaker.app is installed with the Mac OS X Developer tools disk in
The system is quite easy if you know what NOT to do.
It is a 21 step process.
- Create a package directory structure as follows:
Note: you will not need to make directories below Package_root that your package does not need.
the files and applications into the package root structure to match the
Do not make an etc folder at the root of the package root in MAC OSX the
/etc directory is actually a sim-link to /private/etc. The OSX package installer does not
do well following sim-links it will dutifully replace /etc with your
package contents this will make the system un usable after a reboot or
any Pre-install shell or Perl scripts in PreFlight in the resources
any Post-install shell or Perl scripts in PostFlight in the resources
a+rx * in the resources directory so the scripts will execute.
your welcome message file limited to 20 lines in Welcome.rtf in the
the ReadMe file if any in the resources directory ad ReadMe.rtf this file
is not limited in size.
the License for your product in the resources directory in the file
sure all the permissions and ownerships are set correctly (owned by you
permissions set as they will be when installed).
the package maker application.
on the change root button and select package_root.
on SET under the resources directory and select Resources.
the title of the package in the package title field. Always Omit any version numbers in
the title field.
the Version number in the version field.
- Put a
short description of the package in the description field.
needs authorization if this package has to be installed as root.
- Click relocatable
if you wan the user to designate install location (not a good idea if it
is to be installed as root)
Requires a reboot if the package installed a Startup script.
THE DEFAULT LOCATION AS / unless you have a good reason!
Create Package and provide a name-version.pkg filename and the package
maker will make your package DO NOT make the package in your distribution
That is all ( that is quite a lot but it goes fast ).