Open
Conversation
Integrate Sparkle 2.x via Swift Package Manager for in-app auto-updates: - Add SPUStandardUpdaterController to GitClientApp with "Check for Updates…" menu item - Add CheckForUpdatesViewModel observable for update state management - Add SettingsView with update preferences (auto-check, auto-download) - Add Info.plist with SUFeedURL and SUPublicEDKey (placeholder) - Extend release workflow to sign builds with Sparkle EdDSA, generate appcast.xml, and deploy to GitHub Pages
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #78
Summary
appcast.xml, and deploy it to GitHub PagesNew Files
GitClient/Info.plistSUFeedURL(appcast) andSUPublicEDKey(placeholder)GitClient/Models/Observables/CheckForUpdatesViewModel.swiftSPUUpdaterstateGitClient/Views/SettingsView.swiftModified Files
GitClientApp.swiftSPUStandardUpdaterController, add menu command & Settings sceneproject.pbxproj/Package.resolved.github/workflows/release.ymlgh-pagesMaintainer Setup
Before the first release with auto-updates, complete these one-time steps:
1. Generate an EdDSA keypair
Clone Sparkle and run:
This prints a public key and stores the private key in your Keychain. Export the private key with
generate_keys -x.2. Replace the public key placeholder
In
GitClient/Info.plist, replacePLACEHOLDER_EDDSA_PUBLIC_KEYwith the public key from step 1.3. Add the repository secret
Go to Settings → Secrets and variables → Actions and add:
SPARKLE_EDDSA_PRIVATE_KEY4. Enable GitHub Pages
Go to Settings → Pages and set:
gh-pages// (root)The appcast will be served at
https://maoyama.github.io/Changes/appcast.xml.Test Plan