Skip to content

Latest commit

 

History

History
29 lines (25 loc) · 1.93 KB

File metadata and controls

29 lines (25 loc) · 1.93 KB
summary read_when
Sparkle integration details for CodexBar: updater config, keys, and release flow.
Touching Sparkle settings, feed URL, or keys
Generating or troubleshooting the Sparkle appcast
Validating update toggles or updater UI

Sparkle integration

  • Framework: Sparkle 2.8.1 via SwiftPM.
  • Updater: SPUStandardUpdaterController owned by AppDelegate (see Sources/CodexBar/CodexbarApp.swift:1).
  • Feed: SUFeedURL in Info.plist points to GitHub Releases appcast (appcast.xml).
  • Key: SUPublicEDKey set to AGCY8w5vHirVfGGDGc8Szc5iuOqupZSh9pMj/Qs67XI=. Keep the Ed25519 private key safe; use it when generating the appcast.
  • UI: auto-check toggle (About) enables auto-downloads; menu only shows “Update ready, restart now?” once an update is downloaded.
  • LSUIElement: works; updater window will show when checking. App is non-sandboxed.
  • Channels: stable vs beta are served from the same appcast. Beta items are tagged with sparkle:channel="beta"; About → Update Channel controls allowedChannels.

Release flow

  1. Build & notarize as usual (./Scripts/sign-and-notarize.sh), producing notarized CodexBar-<ver>.zip.
  2. Generate appcast entry with Sparkle generate_appcast using the Ed25519 private key; HTML release notes come from CHANGELOG.md via Scripts/changelog-to-html.sh. For beta releases: set SPARKLE_CHANNEL=beta to tag the entry.
  3. Upload appcast.xml + zip to GitHub Releases (feed URL stays stable).
  4. Tag/release.

Notes

  • HTML release notes are embedded in the appcast entry; the Sparkle update dialog should show formatted bullets (not raw tags).
  • If you change the feed host or key, update Info.plist (SUFeedURL, SUPublicEDKey) and bump the app.
  • Auto-check toggle is persisted via Sparkle; manual “Check for Updates…” remains in About.
  • CodexBar disables Sparkle in Homebrew and unsigned builds; those installs should be updated via brew or reinstalling from Releases.