tags:

views:

181

answers:

1

I have a Cocoa application for which I've changed the name. I'm using the excellent Sparkle Framework (http://sparkle.andymatuschak.org/) to provide updates to my users.

Unfortunately, it appears that Sparkle doesn't support application name changes out of the box. I'm hoping there is some hack so that I can provide users who already have the app with an update to the newly named version.

+2  A: 

I'm not sure this is possible using only the vanilla Sparkle framework. The reasoning is that the file name of the application can differ from the CFBundleName defined in Info.plist. Sparkle needs to ensure it is updating the correct file system structure, no matter what it may be named.

Consider the following scenario:

  1. User downloads and installs Adium.app whose CFBundleName is Adium.
  2. User renames it to Instant Messenger.app.
  3. Sparkle downloads and installs an update.
  4. After the update, the file name of the newly updated app is still Instant Messenger.app and the CFBundleName is still Adium.

You can either hope that the fact that your application name has changed in the menu bar will prompt the user to rename it themselves, or your can pull some trickery at application startup to quit the application, rename it, and re-launch it if certain criteria are satisfied. I don't recommend the latter though, users do not like applications deciding to move themselves around without permission.

Mike