Best options to create installer for OSX and Windows

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Hello everyone,

sorry for the really dumb question, but I'm looking for some suggestions regarding the creation of plug-in installers for Mac and Windows, as I never did that before...
I did some preliminary research and found InnoSetup for Windows and ClickInstall for Mac to be some candidates for the purpose.
How do you create your installers?

My requirements are quite simple, just copying the plug-in in a user defined folder for Windows and the predefined plug-in folders on Mac (in the user Library), plus copying some preset files and .wav files on a predefined location (like the "User Application Data" folder, for instance).

What would you suggest? Is there anything else I should worry about when comes to installers, regarding permissions, signing, sandboxing, etc.?

Post

Can't tell about Mac OS X - I've had a fair share of "access denied" issues when offered an installer there. But on Windows you can't go wrong with Inno Setup - but you'll have to know a bit of Delphi Pascal to use it efficiently.
Image

Post

In modern times, for Mac I've just used the command line tools. Use pkgbuild for each plug-in type (AU, VST, AAX...), then put them together with productbuild.

A little more detail: For each plug-in type, something like this (example for for AU)...

Code: Select all

pkgbuild --install-location /Library/Audio/Plug-Ins/Components --identifier com.mycorp.MyPlug-au.pkg --version 1.1.1 --component MyPlug.component MyPlug-au.pkg
Repeat for each type, using the proper install locations for each...

Product build rolls all the packages into an installer. You'll need a distribution xml file to tell productbuild what to do with them. You can synthesize a very basic distribution xml to get started, then edit it to get what you want.

Code: Select all

productbuild --synthesize --package MyPlug-au.pkg --package MyPlug-aax.pkg --package MyPlug-vst.pkg --package MyPlug-vst3.pkg distribution.xml
You'll have to learn the format of the distribution xml, it's where the interesting stuff happens. For instance, you'll probably want it to know about a license to pop up, and the background image for the installer. When you build the installer, you'll need to tell productbuild to include such resources:

Code: Select all

productbuild --distribution distribution.xml --resources Resources/ Installer.pkg
Use productsign to sign the package.
My audio DSP blog: earlevel.com

Post

For Windows, I use NSIS, but it basically requires you to learn a new language and library. Here's the installer script for VCV Rack which generates the installer you can download from the website. https://github.com/VCVRack/Rack/blob/v0.6/installer.nsi

For Mac, I just bundle everything into a DMG. https://github.com/VCVRack/Rack/blob/v0 ... #L114-L118 I'd like to have a custom PNG background in the DMG later, but there's no elegant/easy way to do that on the command line. However, there are utilities that can help you by abstracting away the nastiness. https://github.com/andreyvit/create-dmg https://github.com/LinusU/node-appdmg https://github.com/remko/fancy-dmg
VCV Rack, the Eurorack simulator

Post

Thanks for the response so far!
I've played around with Inno Setup on Windows and got a pretty cool result, thanks also to the templates available on IPlug by Oli Larkin.

On the OSX side, I've played around with pkgbuild and I've been able to do all I needed without even using productbuild, since you can tell pkgbuild to just replicate a certain folder/files hierarchy from a folder marked as "root", so it just copies all the files and folders according to that structure.

Do you suggest to install the files at system level or user level?
User level seems safer to me, but I'm open to suggestions.

Regards,
Federico

Post

Wild Hades wrote:On the OSX side...Do you suggest to install the files at system level or user level?
User level seems safer to me, but I'm open to suggestions.
On Mac, installers pretty much universally target system level (/library).
My audio DSP blog: earlevel.com

Post

Thanks for this, very useful. I'm making one for multiple VST versions that I will share after I'm completed.

Post Reply

Return to “DSP and Plugin Development”