Help MacUpdate by , and win an iPod!
|
DESCRIPTION

Sparkle is a module that developers can stick in their Cocoa applications (five-step install!) to get instant self-update functionality. By that, I mean that your app will be able to update itself, not just check for new versions: it'll read the update information from an appcast on your server, download, extract, install, restart, and even offer to show the users release notes before they decide if they want to update.

It's free, it's easy, and it’ll make using a Mac better for everyone, so go for it! Make sure to visit Sparkle's homepage to see a video of it in action.

Features
  • True self-updating - no action required from the user.
  • Supports appcasts for release information. Appcasts are cool.
  • Extracts updates from .tar, .tbz, and .tgz archives.
  • Displays a detailed status window to the user.
  • Can display release notes to the user before updating.
  • Seamless app integration - there's no mention of Sparkle anywhere; your app’s name and icon are inserted everywhere automatically.
  • Really, really easy to install.
  • You don't have to put any glue code for Sparkle anywhere in your project (it's all through IB), so it’s trivial to upgrade or remove the module.
  • (Should be) good about error handling in bad conditions.
WHAT'S NEW
Version 1.5b5:
  • Important Changes!
    • Made every Sparkle class private except for SUUpdater, SUAppcast, SUAppcastItem, and the SUVersionComparisonProtocol.
    • There is now a single SUUpdater singleton for every host bundle; instead of -[SUUpdater setHostBundle], you can use +[SUUpdater updaterForBundle].
    • Redefined the (entire) delegate protocol accordingly.
    • Renamed -[SUUpdater updatePreferencesChanged] to -[SUUpdater resetUpdateCycle]. This provides better semantics for non-apps, which need to start the update cycle manually.
    • [SUUpdater checkForUpdatesWithDriver] is private. If you were using SUProbingUpdateDriver, you can now use -[SUUpdater checkForUpdateInformation] for a similar effect.
    • All the user defaults keys are now private; instead, SUUpdater is KVC-compliant for automaticallyChecksForUpdates, updateCheckInterval, and feedURL.
  • Reduced the size of the English-only framework by 25%.
  • System profiling information is now only submitted to the server once per week; this will help normalize your statistics across users with different interval preferences.
  • The feedParamatersForUpdater: delegate method now requires "displayKey" and "displayVersion" keys so that it can inform the user what's being sent.
  • Added a delegate method called pathToRelaunchForUpdater: which can be used for plugins to provide the path which should be used when relaunching the client after installing an update.
  • Added support for xml:lang to pick localized nodes in appcasts (for release notes, etc).
  • Fixed a bug which would cause the "checking for updates" window to not disappear in certain extraordinary error conditions.
  • Fixed a DSA signature checking bug for .tar.gz archives.
  • Sparkle now refuses to update on any read-only volume, not just dmgs.
  • Sparkle will clean up the host app's name and version before sending it as the user agent string; some non-ASCII characters were causing problems.
  • Added an Italian localization courtesy Michele Longhi.
  • Added a Swedish localization courtesy Daniel Bergman.
  • Fixes to the French localization courtesy Ronald Leroux and Yann Ricqueberg.
  • Fixes to the German localization courtesy Sven-S. Porst.
  • Fixes to the Russian localization courtesy Alexander Bykov and Anton Sotkov.
  • Fixed a number of issues related to archive format detection: I reverted back to extensions from UTIs.
  • Focus behavior fixes for LSUIElement apps.
  • The status window progress bar now animates even when indeterminate.
  • Major refactorings to improve functionality for non-app bundles.
REQUIREMENTS
Mac OS X 10.3.9 or later.


SCREENSHOT

Developer:Andy Matuschak
Downloads:4,040
  - Version d/l:290
Development:Libraries
License:Free
Date:14 Aug 2008
Platform:PPC/Intel
OTHER PEOPLE SUGGEST
Suggest something else:
Sparkle User Reviews (9 posts)Write A Review
sort: smiles | time
Aug 14 2008
*****

TONY ARNOLD  Sparkle is indispensable if you're a small developer. Until Apple releases something that handles what Sparkle does at an operating system level I'll be including the Sparkle framework in all of my apps.

Absolutely brilliant, Andy - keep up the great work!  
(Version 1.5b5)

praisebury
0
[ Reply ]
Jul 25 2008
*....

BORLOX  Am I the only one who thinks this is a bad idea?

Applications that don't need to access the network, shouldn't. The Mac OS is moving toward a sandbox security model in which applications can be selectively allowed access to kernel facilities such as I/O and networking. This framework conflicts with that model.

A security-conscious user should have an admin account that is used only for administrative tasks such as software installation. Only the apps that are required for those tasks should run in that account. All other work should be done in another account, without admin privileges. Sparkle conflicts with that model, too.

The one time I tried it, Sparkle installed an app bundle with wrong, wide open, permissions.

Unfortunately, more and more developers are included this waste of disk space in their products, and you can't remove it, because then the apps won't launch.  
(Version 1.5b4)

praisebury
-2
[ Reply ]
Jun 6 2008

HOFMAN  The concept is really nice. But unfortunately the implementation is very buggy. There are some critical bugs, and it has a huge chance to lead to namespace clashes, due to its implementation of many categories on Cocoa objects. Due to the nature of this framework, as a simple drop-in utility, this is pretty serious. Moreover the localizations are missing.

Anyone should be aware this is a *beta* version. MU should have noted this, probably this version should not have been listed at all.

I strongly advice developers not to use this version. And if you do, be aware that you *must* fix its bugs and be very well aware of the namespace problems.  
(Version 1.5b1)

praisebury
0
[ Reply ]
Jun 1 2008
*****

ZWEI  This is how updates should be done!  
(Version 1.5b1)

praisebury
0
[ Reply ]
Mar 30 2007

GUILLAUMEK  Too bad the dev's site has been down for some time now. Is this stil being developped?  
(Version 1.1)

praisebury
0
[ 3 Replies - Reply ]
Replies:
Mar 30 2007

MACUPDATE ADMIN  I sent the developer an email just now... I'll post his reply as soon as I get it.  
(Version 1.1)

praisebury
0
Mar 30 2007

GUILLAUMEK  That was quick! :) nice.  
(Version 1.1)

praisebury
0
Apr 3 2007

GUILLAUMEK  "Sorry, but the SQLite database behind Sparkle's site exploded in a giant fireball, and Caltech is an unrelenting work-slinging monster, so I don't have time to fix it at the moment. I'd really appreciate it if you didn't send me emails about the site or with bug reports until I get the site back up. In the meantime, you can still download Sparkle here."

http://sparkle.andymatuschak.org/  
(Version 1.1)

praisebury
0

Jul 16 2006

NAMXAM  It would be great if you two could cooperate and create a quasi standard for the mac platform - something similar to Growl, just for software updates.  
(Version 1.1)

praisebury
0
[ Reply ]
Jan 25 2006
****½

BILLY RAY VALENTINE  Really easy to use, code all commented. Very well done.

I like it ;)

Thanks a lot.  
(Version 0.1.1)

praisebury
0
[ Reply ]
Jan 25 2006

NATHAN BOYD  sounds like a good updating app plugin. I cannot tell you the amount of times when I saw an update for an app, but wanted it to be a 2-click job, rather than loading the disk image, copying, replacing, etc....

this would be greatly appreciated.  
(Version 0.1.1)

praisebury
0
[ Reply ]
Jan 10 2006

SASCHA MüLLNER  Cool I am basically working at the same. I did it with a framework and a system preference and am thinking of integrating more features like updating all apps. instantly using the framework, mirror downloads with crc check. How about a coop? Would be cool if you could drop me a message - sascha!muellner.de

Kind regards,

Sascha  
(Version 0.1)

praisebury
0
[ 1 Reply - Reply ]
Replies:
Mar 16 2007

EDUO  Actually, if Sparkle had some way to "publish" its update parameters it could be scanned by your prefpane. It would be a good step in the right direction and would push both projects for adoption.  
(Version 1.1)

praisebury
0