Skip to content

Conversation

@jsattler
Copy link
Owner

@jsattler jsattler commented Feb 8, 2026

Summary

Integrates Sparkle 2 for in-app update support, closing #36.

  • Add Sparkle as an SPM dependency with UpdaterService wrapper for SwiftUI
  • Wire up "Check for Update" button and auto-check toggle in Settings to Sparkle's updater
  • Update release workflow to sign DMGs with Sparkle EdDSA and upload appcast.xml as a release asset
  • Add appcast generation script that embeds GitHub release notes as inline HTML
  • Update sandbox entitlements for Sparkle (network client + Mach lookup exceptions)
  • Update Homebrew cask to use livecheck with strategy :github_latest (no more CI commits)

Appcast hosting

The appcast is uploaded as a GitHub release asset. Sparkle clients fetch it from:

https://github.com/jsattler/BetterCapture/releases/latest/download/appcast.xml

This URL always resolves to the latest non-prerelease, so no manual URL management is needed.

Required secrets

Before the first release with Sparkle, two GitHub Actions secrets must be created:

Secret Description
SPARKLE_PUBLIC_EDDSA_KEY EdDSA public key (injected into Info.plist at build time)
SPARKLE_PRIVATE_EDDSA_KEY EdDSA private key (signs the DMG for update verification)

Generate with ./bin/generate_keys from the Sparkle distribution.

Release workflow changes

The release workflow no longer commits anything back to the repository. Instead:

  • appcast.xml is uploaded as a release asset alongside the DMG
  • Homebrew cask uses sha256 :no_check and livecheck - version is updated manually before release

Closes #36

@jsattler jsattler linked an issue Feb 8, 2026 that may be closed by this pull request
@jsattler jsattler force-pushed the 36-add-support-for-in-app-updates branch from 2a7e221 to adb9125 Compare February 8, 2026 10:56
@jsattler jsattler self-assigned this Feb 8, 2026
@jsattler jsattler added this to the 2026.1 milestone Feb 8, 2026
@jsattler jsattler merged commit 6c1f8d7 into main Feb 8, 2026
2 checks passed
@jsattler jsattler deleted the 36-add-support-for-in-app-updates branch February 8, 2026 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for in-app updates

1 participant