@@ -21,8 +21,14 @@ Local packaging helpers live in `Scripts/`:
2121- ` Scripts/package_app.sh ` : build and create ` CodexSkillManager.app ` .
2222- ` Scripts/sign-and-notarize.sh ` : sign + notarize for releases.
2323- ` Scripts/make_appcast.sh ` : generate Sparkle appcast from a zip.
24+ - ` Scripts/generate_sparkle_keys.sh ` : generate Sparkle keypair and export private key.
2425
25- ## Release flow (commit → changelog → GitHub release)
26+ Sparkle env vars (set in ` ~/.zshrc ` ):
27+ - ` SPARKLE_PUBLIC_KEY `
28+ - ` SPARKLE_PRIVATE_KEY_FILE `
29+ - ` SPARKLE_FEED_URL `
30+
31+ ## Release flow (commit → changelog → notarize → appcast → GitHub release)
26321 ) Update version: bump ` MARKETING_VERSION ` in ` version.env ` .
27332 ) Build: ` swift build ` .
28343 ) Commit + push:
@@ -33,8 +39,13 @@ Local packaging helpers live in `Scripts/`:
33395 ) Notarize and package:
3440 - ` APP_STORE_CONNECT_API_KEY_P8="/path/to/key.p8" APP_STORE_CONNECT_KEY_ID="..." APP_STORE_CONNECT_ISSUER_ID="..." APP_IDENTITY="Developer ID Application: ..." `
3541 - ` ./Scripts/sign-and-notarize.sh `
36- 6 ) Publish GitHub release (creates the tag):
37- - ` gh release create v<version> CodexSkillManager-<version>.zip --title "Codex Skill Manager <version>" --notes-file /tmp/codexskillmanager-release-notes-<version>.md `
42+ 6 ) Generate Sparkle appcast entry:
43+ - ` SPARKLE_PRIVATE_KEY_FILE="..." ./Scripts/make_appcast.sh CodexSkillManager-<version>.zip https://raw.githubusercontent.com/Dimillian/CodexSkillManager/main/appcast.xml `
44+ - ` git add appcast.xml `
45+ - ` git commit -m "chore: update sparkle appcast" `
46+ - ` git push `
47+ 7 ) Publish GitHub release (creates the tag):
48+ - ` gh release create v<version> CodexSkillManager-<version>.zip appcast.xml --title "Codex Skill Manager <version>" --notes-file /tmp/codexskillmanager-release-notes-<version>.md `
3849
3950## Project layout
4051- ` Package.swift ` : SwiftPM manifest for the executable target.
0 commit comments