0

I have an application to be distributed. Pretty much everything is self-contained within one bundle so I could just put the bundle in a DMG for the first version-- however this won't work for upgrades, so I figured I'd best work out the process ahead of time.

I've been looking at PackageMaker and it seems straightforward enough. However I have a couple of very specific requirements which may cause problems, and it wasn't apparent from reading the PM docs as to whether this is even possible:

First of all, I want the installer to automatically choose between installing two different versions of the app, depending upon whether a previous version of the application has previously been installed.

Secondly, I don't want to just overwrite the previous application's bundle, I just want the installer to overwrite files within it and add new ones -- in other words, I want certain files within the application bundle to remain from the previous version.

Is this something I could achieve with PackageMaker, or should I look for a different approach?

Kara
  • 6,115
  • 16
  • 50
  • 57
Jack James
  • 5,252
  • 6
  • 36
  • 38

2 Answers2

0

You can do a lot with an installer package, for example run a shell script which in turn allows you to do everything.


I get the feeling that you're doing it not the Mac way. It's uncommon to store data in the application bundle, normally such stuff goes to ~/Library/Application Support/. I presume that those two different applications are quite similar, why not just set a preference?

Personally, I feel that today a .zip is the best way to distribute your apps. It gets automatically decompressed and shows up with your application icon in the downloads stack. (Only if you get it from the internet, of course.)

Georg Schölly
  • 124,188
  • 49
  • 220
  • 267
  • unfortunately the location of the data that gets created is not controllable... otherwise i would of course make life simple for myself – Jack James Feb 06 '10 at 15:11
0

For updating look at the sparkle framework. The forst install is just copy the application bundle from the internet and te user then just asks to do update and does not have to leave your application to do anything

mmmmmm
  • 32,227
  • 27
  • 88
  • 117