Skip to content

Conversation

@William-Laverty
Copy link

Summary

When clicking 'Install Apple Silicon', the UI incorrectly shows the Universal version as 'Installing' instead of the Apple Silicon version.

Root Cause

setInstallationStep used version.isEquivalent() which doesn't consider architectures. When both Universal and Apple Silicon versions exist with the same Xcode version, the first one found (Universal) was marked as installing.

// Before: Uses version equivalence (ignores architectures)
func setInstallationStep(of version: Version, to step: XcodeInstallationStep) {
    guard let index = self.allXcodes.firstIndex(where: { $0.version.isEquivalent(to: version) }) else { return }
    // ...
}

Fix

Changed setInstallationStep to accept XcodeID instead of Version, enabling exact matching including architectures:

// After: Uses XcodeID equality (includes architectures)
func setInstallationStep(of xcodeID: XcodeID, to step: XcodeInstallationStep) {
    guard let index = self.allXcodes.firstIndex(where: { $0.id == xcodeID }) else { return }
    // ...
}

Testing

  1. Filter list to show only Apple Silicon builds
  2. Select an Xcode version with both Universal and Apple Silicon variants
  3. Click 'Install Apple Silicon'
  4. Verify the Apple Silicon row shows as 'Installing', not the Universal row

Fixes #776, #777, #782

When clicking 'Install Apple Silicon', the UI incorrectly shows the Universal
version as 'Installing' instead of the Apple Silicon version.

Root cause: setInstallationStep used version.isEquivalent() which doesn't
consider architectures. When both Universal and Apple Silicon exist with the
same version, the first one found (Universal) was marked as installing.

Fix: Change setInstallationStep to accept XcodeID instead of Version, enabling
exact matching including architectures.

Fixes XcodesOrg#776, XcodesOrg#777, XcodesOrg#782
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.

‘Install Apple Silicon’ installs Universal build instead of Apple Silicon-only version on macOS 26.1

1 participant