Making a generic application updatable using Sparkle

Asked by Andy

I'd like to explore the possibility of using Sparkle to add automatic updates to an arbitrary application. For instance, our app is an adobe AIR application that we'd like to add automatic-update capabilities to. It's not an Xcode project, so I can't just integrate Sparkle into the application (is that correct?). However, would it be possible/make sense to do something like this:

Create a new .app that wraps a Sparkle update app and the actual App that I'd like to update into a new App. Every time that app is run, run the Updater and check for updates. If there are updates, download and install the enclosing .App that updates both the Updater as well as the actual App.

It's a bit hacky, and I'm hoping someone has better ideas. Does this approach even make sense?

I apologize if this is a well known issue or a stupid question altogether -- I'm new at all this.

Question information

Language:
English Edit question
Status:
Solved
For:
Sparkle Edit question
Assignee:
No assignee Edit question
Solved by:
Andy
Solved:
Last query:
Last reply:
Revision history for this message
Andy Matuschak (andymatuschak) said :
#1

I don't know anything about AIR, but I'll bet it has some support for foreign function interfaces, in which case you should be able to call into Sparkle in the same way RealBasic / Carbon / AppleScript apps do.

I'd recommend against the enclosure-app approach, though: that's pretty hideous.

It's be nice if Sparkle were a little more generic in that respect, but it's going for simple and lightweight over catch-all and super-flexible. Google Update Engine is a lot more customizable; you might check that out: http://code.google.com/p/update-engine/

Revision history for this message
Andy (andykk) said :
#2

Thanks for the response. Google's Update Engine didn't quite work out, and the enclosure-app approach was hideous indeed, so we've just decided to build our own update framework. The convenient thing about building an update framework is that you can update the updater itself when needed. Thanks again for the response.