@@ -63,37 +63,50 @@ Save the private key to your `.env` file and add the public key to your app's `I
6363
6464### Quick Release (Recommended)
6565
66- For a standard release, just run:
66+ ** Step 1:** Update ` CHANGELOG.md ` during development. Add your changes to the ` [Unreleased] ` section:
67+
68+ ``` markdown
69+ ## [ Unreleased]
70+
71+ - [ added] New feature description
72+ - [ fixed] Bug fix description
73+ - [ changed] Improvement description
74+ - [ removed] Removed feature description
75+ ```
76+
77+ ** Step 2:** When ready to release, run:
6778
6879``` bash
69- ./scripts/release.sh < version> " <changelog> "
80+ ./scripts/release.sh < version>
7081```
7182
7283** Examples:**
7384
7485``` bash
7586# Patch release (bug fixes)
76- ./scripts/release.sh 0.1.2 " Fixed crash on startup "
87+ ./scripts/release.sh 0.1.2
7788
7889# Minor release (new features)
79- ./scripts/release.sh 0.2.0 " Added new disk analysis feature "
90+ ./scripts/release.sh 0.2.0
8091
8192# Major release
82- ./scripts/release.sh 1.0.0 " First stable release "
93+ ./scripts/release.sh 1.0.0
8394```
8495
8596The script automatically:
86- 1 . Increments the build number
87- 2 . Updates version in Xcode project
88- 3 . Builds and archives the app
89- 4 . Signs with Developer ID certificate
90- 5 . Notarizes with Apple
91- 6 . Creates DMG and ZIP packages
92- 7 . Signs ZIP for Sparkle auto-updates
93- 8 . Updates ` appcast.xml ` for Sparkle
94- 9 . Updates ` website/public/data/releases.json `
95- 10 . Creates GitHub release with assets
96- 11 . Commits and pushes all changes
97+ 1 . Reads changelog from ` CHANGELOG.md ` ` [Unreleased] ` section
98+ 2 . Increments the build number
99+ 3 . Updates version in Xcode project
100+ 4 . Builds and archives the app
101+ 5 . Signs with Developer ID certificate
102+ 6 . Notarizes with Apple
103+ 7 . Creates DMG and ZIP packages
104+ 8 . Signs ZIP for Sparkle auto-updates
105+ 9 . Updates ` appcast.xml ` for Sparkle
106+ 10 . Updates ` website/public/data/releases.json `
107+ 11 . Creates GitHub release with assets
108+ 12 . Updates ` CHANGELOG.md ` (moves ` [Unreleased] ` to versioned section)
109+ 13 . Commits and pushes all changes
97110
98111---
99112
@@ -316,23 +329,54 @@ EOF
316329sed -i ' ' ' s/MARKETING_VERSION = [^;]*;/MARKETING_VERSION = 0.1.0;/g' MyMacCleaner.xcodeproj/project.pbxproj
317330sed -i ' ' ' s/CURRENT_PROJECT_VERSION = [^;]*;/CURRENT_PROJECT_VERSION = 0;/g' MyMacCleaner.xcodeproj/project.pbxproj
318331
332+ # Reset CHANGELOG.md
333+ cat > CHANGELOG.md << 'EOF '
334+ # Changelog
335+
336+ All notable changes to MyMacCleaner will be documented in this file.
337+
338+ ## [Unreleased]
339+
340+ - [added] Initial release with auto-update functionality
341+
342+ EOF
343+
319344# Commit and push
320345git add -A && git commit -m " chore: prepare for fresh release" && git push
321346
322347# Release first version
323- ./scripts/release.sh 0.1.0 " Initial release"
348+ ./scripts/release.sh 0.1.0
349+
350+ # Update CHANGELOG.md for second version
351+ cat > CHANGELOG.md << 'EOF '
352+ # Changelog
353+
354+ All notable changes to MyMacCleaner will be documented in this file.
355+
356+ ## [Unreleased]
357+
358+ - [changed] Update notification improvements
359+
360+ ## [0.1.0] - 2026-01-23
361+
362+ - [added] Initial release with auto-update functionality
363+
364+ EOF
365+
366+ git add CHANGELOG.md && git commit -m " docs: prepare changelog for v0.1.1" && git push
324367
325368# Release second version (for testing updates)
326- ./scripts/release.sh 0.1.1 " Update notification improvements "
369+ ./scripts/release.sh 0.1.1
327370```
328371
329372---
330373
331374## Quick Reference
332375
333376``` bash
334- # Standard release
335- ./scripts/release.sh 0.1.2 " Bug fixes and improvements"
377+ # 1. Update CHANGELOG.md with your changes during development
378+ # 2. When ready to release:
379+ ./scripts/release.sh 0.1.2
336380
337381# Check current version
338382grep -m1 " MARKETING_VERSION" MyMacCleaner.xcodeproj/project.pbxproj
@@ -344,6 +388,9 @@ gh release list
344388# View appcast
345389cat appcast.xml
346390
391+ # View changelog
392+ cat CHANGELOG.md
393+
347394# Check notarization history
348395xcrun notarytool history --keychain-profile " notary-profile"
349396```
0 commit comments