Create a Mac OS .app bundle with Chef Omnibus in DMG installer


#1

I'm looking for advice related to creating DMG installers with Chef/Omnibus.

We have a Java application that runs on Windows, Mac and Ubuntu. We generate our installers for all three OSs using Omnibus. For Mac specifically we've followed the these guidelines to build a DMG installer. So we have the input files like distribution.xml, license.html and welcome.html in place and Omnibus takes care of the heavy lifting.

Our DMG installer works fine, our application is installed as instructed. However, there's no easy way for our users to start the application - they need to go and look for the installation folder and locate the startup shell script themselves and run it in a terminal window. There seem to be at least two ways to improve the user experience:

  • a shortcut on the desktop to the shell script: coming from Windows this was my initial thought. However, based on feedback from another forum this is not recommended as it's a "Windows thing" and desktop shortcuts shouldn't be misused to start applications on a Mac
  • build an .app bundle so that users can easily find our application in the /Applications folder

From what I've gathered so far a bundle is a collection of folders and files that follow a specific structure:

  • an info.plist file
  • an executable - this could be our shell script mentioned above
  • a Resources folder
  • ...and various other files

I've found that the easiest way to create a bundle is using the xCode editor but it's not an option for us. We've hooked up Omnibus in a CI process to automate the flow and we prefer to keep it that way, it's very efficient and reliable. The best would be to extend out current Omnibus process somehow so that we also get this bundle file. However, at this point I'm not even sure if it's possible. Apparently OSX bundles can be built without xCode but it seems quite complex and I'm not sure if it can be incorporated into Omnibus somehow.

I'm certain there are others out there who create DMG installers with Omnibus and have managed to come a long way.

I'm really stuck so I'm grateful for any pointers. I have a very limited knowledge of Mac OS so if you think I'm way off please let me know.

Thank you