Skip to main content
Version: 4.35.0

Auto-Update macOS

Overview

Automatic update system for the Electron application on macOS, bringing feature parity with Windows. macOS users receive an update notification and can install with a single click.

How it works

  • setupAutoUpdater(window) configures the feed URL and IPC listeners at startup
  • Channel (beta/stable) is auto-detected from app.getVersion() (presence of "beta" in version string)
  • Feed URL points to the nuts release API: /download/channel/{beta|stable}
  • On error, the update-error event resets UI state via setUpdate(false)

Key files

  • index.jssetupAutoUpdater(window): feed URL configuration and channel detection
  • src/store/actions.tssetUpdate(boolean): action to show/hide the update banner
  • src/services/fileProtect/ipcRenderAction.tsupdate-error listener for UI reset
  • src/services/fileProtect/storeAction.tsactionSetUpdate dispatch
  • package.jsonmac.target: ["dmg", "zip"] required for auto-update compatibility
  • .gitlab-ci.yml — .zip and *-mac.yml artifacts included in pipeline

Technical decisions

  • Nuts release API rather than GitHub Releases: self-hosted infrastructure, beta/stable channel control.
  • setupAutoUpdater as a dedicated function: isolates auto-update logic from the rest of index.js, easier to test and maintain.
  • setUpdate(boolean) rather than two separate actions: simplifies reset on error.
  • Target ["dmg", "zip"]: .zip is required by Squirrel.Mac for automatic updates, .dmg for initial installation.

Known issues

  • No known issues currently

Next steps

  • Silent notifications with install on next restart
  • Update download progress bar