Tutorials or instructions on delivering MacOSX apps...

Alex Rice alex at mindlube.com
Thu Feb 5 12:08:00 EST 2004


On Feb 5, 2004, at 12:50 AM, Chipp Walters wrote:

> I've seen (and made) some tutorials on building icons for Windows  
> apps. And
> using a utility like Install Creator from Clickteam  
> (www.clickteam.com) is a
> great way to build an installer for Windows.

For Windows I *highly* recommend InnoSetup (it's free too!)  
http://innosetup.com or jrsoftware.org


> But, I've not yet built installers for standalones on MacOSX. Anyone  
> know of
> a step-by-step way to produce and distribute commercial standalones  
> for OSX?

There is no canonical way to do it like there is on Windows (pick  
Installshield, Windows Installer, or a work-alike like InnoSetup)

First install the OS X Dev Tools CD you will get lots of good free  
utilities with it. Here are some concepts I have found useful.

App Bundle's Info.plist
You will probably want to replace the app bundle produced by Runrev.

In the bundle, Info.plist is the file that specifies everything that  
makes an app bundle an app bundle: the Icons filename, Get Info string,  
HelpBook filename, Executable name, Copyright string, etc.

What I recommend is using Project Builder or XCODE to build a hello  
world C app, to get the App Bundle and Info.plist created for you  
exactly how you want it. PB/XCODE has a nice GUI for entering all the  
fields of the Info.plist. Then copy the Rev executable into the new app  
bundle. I'll attach a shell script I use for this purpose.


App Bundle Contents
If you have a lot of files to manage, you can also attach a  
shell-script build phase to the PB/XCODE project which can be used to  
copy files into the app bundle. Or use Drag and Drop to attach files to  
the project so PB/XCODE will put them into the Resources folder of your  
app bundle.


Distribute with DMG
If your app is a single app bundle, or self-contained in a folder, I  
would suggest using a DMG disk image. Although you can use  
DiskUtility.app or CLI tools to create .dmg files, I use the shareware  
DropDMG. DropDMG allows you to attach auto-open flags, and license  
agreement texts to the DMG. See  
<http://mindlube.com/download/files/Slacker-2_1_6.dmg> for an example.

The basic idea with DMGs is they open up and the user can run the app  
from right there (assuming the app doesn't write to it's own folder),  
or the user most likely will drag-drop the app to their Applications  
folder.

It might sound overly simplistic, but it works good and in fact Apple  
uses dmg images to distribute several of their apps.


Icon Composer (in Developer/Applications/Utilities)
Create 4 sizes of icons in Photoshop or whatever, then copy-paste them  
into this app to create a .icns file. Reference the icns file in your  
Info.plist


PackageMaker (in Developer/Applications/Utilities)
This is the "official" Apple installer-maker for MacOS X. It used to be  
tough to use safely and sanely. But if you decide against DMG disk  
images, then look at this. Packages still need to be imaged somehow  
(.sit or .dmg for instance. Packages can also *run scripts* at install  
time, so they are used for more complicated installs where drag-n-drop  
won't work.


Property List Editor (in  Developer/Applications/Utilities)
Edit Info.plist XML files with a nice GUI.


3rd party Installers
If you decided against DMG and against Packages, then there are 3rd  
party installers like WISE, VISE, Stuffit InstallerMaker and others.

----

This shell script takes the standalone output from Revolution, and  
copies it into a custom application bundle I maintain.

#!/bin/sh

#
# build an OSX app bundle for ARC testing.
#

# this is the binary executable produced by runrev
cp  
build/FacilityCa_MacOSX_Standalone/FacilityCalculator.app/Contents/ 
MacOS/Revolution \
     
build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS/ 
FacilityCalculator

# revclips.bundle could go into Resources or Plugins instead, but
# but it works here to
cp -R revclips.bundle \
     build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS

# not using revxml yet
# cp -R  build/Standalone_MacOSX_FacilityCa/revxml.bundle \
#    build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS

# supporting files
cp -R clips-models \
     build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS
# delete emacs backup files
rm  
build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS/clips-models/*~

# supporting files
cp -R data \
     build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS

# unneeded files
rm  
build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS/data/ 
UserData*.rev
rm build/NPSFacCalc/FacilityCalculator.app/Contents/MacOS/data/*~

# launch the app for testing
# open build/NPSFacCalc/FacilityCalculator.app

--
Alex Rice | Mindlube Software | http://mindlube.com



More information about the use-livecode mailing list