Best options to create installer for OSX and Windows
-
- KVRist
- Topic Starter
- 212 posts since 6 Sep, 2007
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.?
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.?
- KVRAF
- 4021 posts since 7 Sep, 2002
-
- KVRian
- 653 posts since 4 Apr, 2010
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)...
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.
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:
Use productsign to sign the package.
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
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
Code: Select all
productbuild --distribution distribution.xml --resources Resources/ Installer.pkg
My audio DSP blog: earlevel.com
- KVRist
- 323 posts since 19 Jul, 2008
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
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
-
- KVRist
- Topic Starter
- 212 posts since 6 Sep, 2007
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
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
-
- KVRian
- 653 posts since 4 Apr, 2010
On Mac, installers pretty much universally target system level (/library).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.
My audio DSP blog: earlevel.com
- KVRian
- 1311 posts since 7 Apr, 2019 from Canada
Thanks for this, very useful. I'm making one for multiple VST versions that I will share after I'm completed.
DSPplug Products https://www.kvraudio.com/marketplace/dspplug
DSPplug website https://dspplug.com
DSPplug Linkedin https://linkedin.com/in/rjbellis
DSPplug website https://dspplug.com
DSPplug Linkedin https://linkedin.com/in/rjbellis