Monday, March 5, 2012

Creating Installers for your Desktop Applications

From time to time, I see people on the forums and mailing list ask about ways to create installers for their Real Studio desktop applications.  I'm going to cover some of the tools I have used which have worked well.

Mac OS X
The simplest thing to do on Mac OS X is to distribute your application as a zip file.  Your user can then unzip it and drag it to the Applications folder.

This might seem too simplistic for you, so another option is to distribute your app using a DMG (Disk Image) file.  The user double-clicks this file to mount it in the Finder and then drags your application to the Applications folder.  If you use a tool, such as DMG Canvas, you can also add a background (and Applications alias) to the DMG to make it easier for your users.

The final option is to use an installer.  Even if installers are somewhat uncommon on Mac OS X, they can still be useful.  You may find your users are more comfortable running an installer even it it doesn't do anything more than copy your app to the Applications folder.  And an installer can make it easier to copy files to other locations and prompt for authorization.

Apple includes a tool called PackageMaker for free with their Xcode developer tools, but I've found it difficult to use and a bit crashy.  So I use Iceberg instead.  Iceberg is a free tool to create installer packages.  I've used it on most of my projects for several years now and it works great.

Keep in mind that you'll still need to deliver your installer as either a zip or on a DMG.

Windows users expect an installer, so you can't really get away with just using a ZIP file.  Depending on the project, I've used two installers on Windows: InnoSetup and Advanced Installer.

InnoSetup creates setup.exe installers and is pretty easy to use once you get it set up.  Unfortunately, you do have to create your script by hand.  There is an example script in the documentation wiki to get you started.

Advanced Installer has a full-blown UI and is quite easy to use.  The free version will likely suffice for most of you, but they also have a more powerful paid version ($300).  In addition to the nice UI, Advanced Installer can create MSI (Microsoft Installer) files, which are preferred by IT departments.  From what I understand, an MSI makes it easier to do remote and bulk deployments.

There are plenty of other installers for Windows, including the popular and expensive InstallShield tools.  But I think that Real Studio packages up your application so nicely that you are not likely to need all the capabilities that the more sophisticated tools provide.

Often I don't bother with an installer for Linux, figuring that if the user is sophisticated enough to be using Linux, they probably don't need an installer.  But I had a client that really wanted an installer for their customers.  After some research, I found a nice little tool called InstallJammer.  It is free (open-source), but unfortunately looks like it is no longer being updated.  It's still worth looking at, though.


Unknown said...

Don't waste your time on installers for Linux. Linux users are (in general) used to using the package system that their Linux distro brings with it. Invest your time in learning how to package for Debian/Ubuntu and the RPM flavors (Red Hat/Centos) and you'll be able to make more than 90% of your customers happy. The rest is probably capable of handling a .zip file.

Gorby said...

InnoSetup for Windows does have a 3rd party GUI which does the trick.

Torrid said...

SetupBuilder from Lindersoft is not free but is really easy to understand and very robust. You can even sign your apps with a security certificate as part of the setup builder process.

marksch said...

Another cross-platform installer, specifically developed for RAD platforms like RealStudio, is Economy-x-Talk's Installer Maker.

CODEX said...

I'm using Actualinstaller. It's more easier.