ChocTop packages and deploys any Cocoa application in a custom DMG, with generated Sparkle XML support.
ChocTop is a command-line installer plus rake tasks (watch the screencast if this is confusing), bundled as a RubyGem:
sudo gem install choctop install_choctop path/to/xcode/project
Your project is given a Rakefile, a release_notes.txt and a release_notes_template.html.erb
You edit the Rakefile with your custom DMG asset information and/or remote file locations for the rsync upload process. CommitChat’s Rakefile includes:
ChocTop::Configuration.new do |s| s.host = 'commitchat.com' s.base_url = 'http://commitchat.com/secret_path_to_beta' s.remote_dir = '/opt/apps/commitchat/secret_path_to_beta' s.background_file = "dmgbg.png" s.volume_icon = 'VolumeIcon.icns' s.app_icon_position = [106, 83] s.applications_icon_position = [422, 83] end
You also need to add Sparkle to your project, and the Info.plist properties such as
To generate a new DMG, run:
To generate a new DMG and push it up to the remote server, and subsequently have users automatically start downloading the latest + greatest automatically via Sparkle:
rake dmg upload
I’m very sorry. It is perhaps too easy. It probably should be harder to make it seem more useful.
The very cool part is that when the DMG is being designed + constructed from your Rakefile settings you actually can see it happening on the screen. The AppleScript that is executed actually operates upon the DMG whilst it is mounted, before unmounting it, compressing and read-only-ifying it. Its pretty to watch.
- Homepage - http://drnic.github.com/choctop
- Source - http://github.com/drnic/choctop
- Tickets - http://drnic.lighthouseapp.com/projects/24673-choctop