Hey now, pay attention to this a little bit: .dmg-based installers are archaic and should be avoided as they are not future-proof (Apple eschews them) and - also - .dmg-based installers require user interaction (to do the drag and drop), whereas .pkg-based installers are preferred because they allow for automated/scripted installs and - most importantly - uninstalls - as well as the ability to add a “post-install” script that can be run to do things such as validate licenses, download additional content, etc…
There has been quite some discussion about this in the JUCE context already, here:
Keep in mind that the fact of .dmg files requiring user interaction means that you can end up with non-intelligent users copying your plugin products all over their filesystems, whereas .pkg-based installers put things in the right place, pretty much 100% of the time …
The best of both worlds: have your custom brand-forward downloader/front-end/portal application (written in JUCE of course) download the .pkg files that the user has selected, then have that app run the PackageInstaller process on the .pkg file, and also give the user the ability to run the PackageUninstaller process on the same .pkg fiiles, lest they decided to uninstall things. Keep the ability to download (but not run) the .pkg files available for those institutions who want to automate the installation of your plugins on a large number of machines. And, just don’t use .dmg.
The trick with such a thing is to make it a good experience you want to silently execute the installers … it is a PAIN IN THE ARSE.
it requires system privileges to be granted and apples documentation is a complete shit show.
And you want to be nice and careful on both platforms you aren’t just building a security hole someone could use to execute other software with admin privileges.
Good luck
Here’s a starting point … it’s marked as deprecated I know!
How do these install managers work in general? Do they just copy paste files? do they silently run the exe/pkg installers? I’ve never looked into this and am very curious about the actual process.
Its more for sysadmins, which is the point of preferring .pkg over .dmg - it allows system administrators to install (remotely) or uninstall packages without user interaction - or sophisticated users can use pkgutil to maintain a clean system as well, or use “Absolute Software InstallEase” as they see fit.