Package installation allows Sparkle to update your application by downloading and installing a package, pkg
, or multi-package, mpkg
usually without user interaction except for asking for an administrator password.
Note package installation should only be used for apps with very custom installation needs that cannot be satisfied by distributing a regular app bundle. For Sparkle, the downsides of using package updates are:
generate_appcast
toolApplications that install daemons or install system extensions do not need to distribute package installers.
Sparkle supports serving and signing flat *.pkg
or *.mpkg
packages directly without having to zip or archive them. This method requires users from old versions of your application to be using Sparkle 1.26 or later. If you have users running older versions of Sparkle, you can expedite migration by switching to a new appcast, or use Archived Package Installation until the majority of your users update.
This method is the recommended way of serving package based updates because it avoids redundant re-compression and metadata.
A package installation occurs when Sparkle finds a *.pkg
or *.mpkg
file in the root of the download archive (e.g, from within a .zip
).
Note: For Sparkle 2, you must also add sparkle:installationType="package"
to your appcast item’s enclosure
for updating archived packages.
Warning: This type of installation is deprecated and may be removed one day. Please don’t use it for future updates to your application.
An interactive installation occurs when Sparkle finds a *.sparkle_interactive.pkg
or *.sparkle_interactive.mpkg
file in the root of the download archive.
The package will be installed using macOS’s built-in GUI installer. The installation will require user to manually click through the steps, so we don’t recommend this type of installation. You must also archive your package update (e.g, in a .zip
) to get this behavior.
Note: For Sparkle 2, you must also add sparkle:installationType="interactive-package"
to your appcast item’s enclosure
for updating interactive packages.