Skip to content

Read beta seed from BetaVersion.plist for renamed Xcode bundles - #9

Draft
anciltech wants to merge 1 commit into
XcodesOrg:mainfrom
anciltech:fix/beta-seed-from-bundle
Draft

anciltech wants to merge 1 commit into
XcodesOrg:mainfrom
anciltech:fix/beta-seed-from-bundle

Conversation

@anciltech

Copy link
Copy Markdown

Summary

When a beta is renamed to Xcode.app (e.g. by "Rename to Xcode.app" on select), the filename no longer carries the prerelease, so every renamed beta parsed as a bare 27.0.0-beta+<build>:

  • With the Apple data source (no build numbers) it was matched to Beta 1 instead of the actual seed: wrong release date, no SDKs, and the real seed (e.g. Beta 6) was listed as not installed.
  • It sorted and displayed as "27.0 Beta" instead of "27.0 Beta 6".

Xcode ships its seed number in Contents/Resources/BetaVersion.plist (seedNumber), so XcodeBundleInfo now uses it as the fallback when the filename has no version. Beta 1 stays unnumbered (beta) to match both release lists. The filename still wins when present.

Tests

  • InstalledXcodeTests: renamed beta reads the seed, beta 1 stays unnumbered, missing plist falls back to beta, filename takes precedence.
  • XcodesKitTests: Apple data source matches a renamed Beta 6 to the Beta 6 release, not Beta 1.

swift test: 196 tests, 0 failures.

A matching XcodesApp change needs this to show renamed betas correctly; once merged, the app's Package.resolved can be bumped.

🤖 Generated with Claude Code

When a beta is renamed to Xcode.app the filename no longer carries the
prerelease identifiers, so every renamed beta parsed as a bare "beta".
With the Apple data source (no build numbers) this matched it against
Beta 1 instead of the actual seed. Xcode ships its seed number in
Contents/Resources/BetaVersion.plist, so use it as the fallback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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