michaelvillar/fileshuttle — pull request #15 by anthonysomerset (2013-02-09 11:56:21+00:00)
Title: Sparkle updater

this solves issue #13

Sparkle is included and defaults to automatically check for updates, (it does not check on the first run of application so that the app starts first and it doesn't affect initial user experience.

Within the preferences is the ability to disable automatic checks and also manually check for updates (there is an item in the menu as well if that's used.

there are some notes or things that would need updating before this is ready for deployment:

at the moment I have set the update feed URL in the Info.plist file to http://f.sts.io/fileshuttle/updater.xml this was for the purposes of testing. if you download this file: http://f.sts.io/KC4QsvJmU1.zip then with the check for updates in the preferences panel it will always "update" but to the same version, I've done this by setting the version number in the appcast feed higher than the actual version of the app that it downloads - this is just for proof of concept. - I've also increased the version number of the app to 2.1 to make this more clear as well - see an example of the update screen:

http://f.sts.io/DfCj4EKyyE.jpg

http://f.sts.io/BqtxZ40kNB.jpg

at this moment in time both the appcast feed and file storage are on my server - I'm happy for this to continue if you prefer but i also see the merits of putting it all on S3 or even served via github pages under a subdomain like http://updates.getfileshuttle.com (https://help.github.com/articles/setting-up-a-custom-domain-with-pages and https://help.github.com/articles/creating-project-pages-manually)

The only change required in code is to update the SUFeedURL Variable in the Info.plist file to its final value and optionally generate new DSA keys and replacing the public key in the archive with your new generated one

I've had to generate DSA keys to use to "sign" the zip archives for sparkles checking of the archive (to prevent Man In the Middle attacks etc) - this means i will have to securely get the private key to you for signing future update archives.