Update Engine is a flexible Mac OS X framework that can help developers keep their products up-to-date. It can update nearly any type of software, including Cocoa apps, screen savers, and preference panes. It can even update kernel extensions, regular files, and root-owned applications. Update Engine can even update multiple products just as easily as it can update one.
Google ships many different pieces of Mac software ranging from simple Cocoa applications to complicated software systems. We needed a robust software update solution that would be able to update all of our current and future Mac products. And we designed and built Update Engine to solve this problem.
The following are some unique features of Update Engine:
- Can update virtually any type of product (e.g., Cocoa app, pref pane, kernel extension)
- Can update non-bundle-based products (e.g., command-line tool, plain file)
- Can update many products at once
- Solid framework on which to build
We have two movies for you to watch.
The first is by Greg and it gives you and overview of Update Engine, why we built it, and what makes it tick. In short, HowDoesUpdateEngineWork. IMPORTANT: this demo uses "http:" URLs in the example tickets to save space. To keep things secure in the real world, https: URLs should be preferred when fetching the plist from the server. See UpdateEngineAndSecurity for more details.
The second is by Mark and it walks you through running the HelloEngine sample program.
To browse the Update Engine source code, visit the Source tab. Changes to Update Engine are documented in the release notes.
If you find a problem/bug or want a new feature to be included in Update Engine, please join the discussion group or submit an issue.
Update Engine follows the Google Objective-C Style Guide.