Skip to content

Conversation

@jsattler
Copy link
Owner

@jsattler jsattler commented Feb 8, 2026

Summary

Fixes the version display issue where the app showed 1.0 (1607da0) instead of the correct version.

Problem

  1. agvtool commands weren't working because the project lacks VERSIONING_SYSTEM = apple-generic
  2. Git SHAs were being used for CFBundleVersion, but Sparkle requires incrementing/comparable version numbers for update comparison
  3. The appcast had sparkle:version hardcoded to "1"

Solution

  • Pass MARKETING_VERSION and CURRENT_PROJECT_VERSION directly to xcodebuild instead of using agvtool
  • Use the semantic version (e.g., 2026.1.1) for both CFBundleShortVersionString and CFBundleVersion
  • Add a custom GitSHA key to Info.plist for commit identification in the UI
  • Update SettingsView to display v2026.1.1 (abc123f) format
  • Pass BUILD_NUMBER to update_appcast.py for proper sparkle:version value

Result

Component Value
Settings display v2026.1.1 (abc123f)
CFBundleShortVersionString 2026.1.1
CFBundleVersion 2026.1.1
sparkle:version 2026.1.1

Sparkle will now correctly compare semantic versions (e.g., 2026.1.1 vs 2026.1.2) to determine if updates are available.

- Use marketing version for both CFBundleVersion and CFBundleShortVersionString
- Add custom GitSHA key to Info.plist for commit identification
- Update SettingsView to display version as v2026.1.1 (abc123f)
- Pass version to appcast script for sparkle:version element
- Replace agvtool with direct xcodebuild build settings
@jsattler jsattler changed the title fix(build): use semantic versioning for Sparkle update comparison fix(build): use calendar versioning for Sparkle update comparison Feb 8, 2026
@jsattler jsattler self-assigned this Feb 8, 2026
@jsattler jsattler merged commit da2501f into main Feb 8, 2026
2 checks passed
@jsattler jsattler deleted the fix/version-display-and-sparkle-comparison branch February 8, 2026 13:33
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.

1 participant