Aerial had auto-updates starting with version 1.5.0, this feature was provided by the (awesome) Sparkle framework.
With the introduction of macOS 10.15 (Catalina), things changed for screen savers and Aerial was no longer able to update itself because of the new security restrictions introduced with sandboxing. A temporary workaround was put in place in version 1.8.0 where you could get notified of a new version.
While this worked most of the time, for some users, the update check caused the ScreenSaverEngine to lose the keyboard/mouse focus, and pressing a key would no longer let you exit the screen saver (pressing cmd-alt-shift-esc
would workaround the issue). This issue seem to trigger a lot more often in macOS 11 (Big Sur), so because of this, Sparkle was completely removed from Aerial with version 2.0.0, and this tool was created to replace it.
You simply pick in the menu which version of Aerial you want to use (you can specify if you just want releases or beta versions too), and whether you want updates to happen automatically in the background, or if you'd rather be notified. If you choose to be notified, the icon will change color and clicking the menu will let you install the new version.
In this repository, I store a manifest file that contains the version number of the latest release, and also the sha256 of the releases. This is generated after Aerial gets notarized for distribution and before I upload a new version on Aerial's releases page.
Periodically, AerialUpdater checks the manifest to see if a new version was released. When you decide to perform an update, the following happens
- AerialUpdater uses the version number from the manifest to infer the download link from Aerial's repository (the download links are always of the same format, so version
1.9.2
will be available athttps://github.com/JohnCoates/Aerial/releases/download/v1.9.2/Aerial.saver.zip
) - The zip file is downloaded to
~/Library/Application Support/AerialUpdater/
- The sha256 of the file is computed, and compared to the one from the manifest
- The zip is unzipped in place, looking for
Aerial.saver
Aerial.saver
is verified (using macOS codesigning) to be using the correct Bundle ID (com.JohnCoates.Aerial)Aerial.saver
is verified (using macOS codesigning) to be signed/notarized with my Developer Apple ID.
If and only if everything checks out, then Aerial.saver
gets copied to ~/Library/Screen Savers/
.
You don't, and sure, as pointed out in Aerial's installation instructions, you can also use homebrew
if you want automatic updates.
And you can always manually download and install Aerial from its Github repository.
Starting with version 0.5, Aerial Updater can now run in the background !
I'm Guillaume Louel, the developer of Aerial since version 1.4.