Skip to content

Uninstall platforms from the info pane and together with their Xcode - #870

Draft
anciltech wants to merge 6 commits into
XcodesOrg:mainfrom
anciltech:feature/platform-uninstall
Draft

anciltech wants to merge 6 commits into
XcodesOrg:mainfrom
anciltech:feature/platform-uninstall

Conversation

@anciltech

@anciltech anciltech commented Sep 29, 2026 •

Copy link
Copy Markdown

Summary

Three commits:

  1. Platform order. The info pane listed platforms in the order of Apple's runtime index, and the Platforms window put tvOS before visionOS. Both now use iOS, watchOS, visionOS, tvOS, with the newest version first within a platform.

  2. Uninstall button in the info pane. Installed platforms could only be removed from the Platforms window. Each installed platform in the info pane now has an Uninstall button, confirmed with the existing "Are you sure you want to delete …?" alert; errors are shown in the main window rather than the Settings window.

  3. Uninstall with Platforms. When uninstalling an Xcode, the confirmation gets an Uninstall with Platforms button if there are installed simulator platforms that match this Xcode's SDKs and none of the other installed Xcodes', and lists them. The platforms are removed after the Xcode itself. Platforms shared with another installed Xcode are never offered.

  4. Aligned buttons. Installed and not-installed rows placed their spacers differently, so Uninstall floated mid-row while Install sat by the size. Both now sit next to the size column.

  5. No active Xcode. Removing a platform runs simctl, which only comes with Xcode; with the Command Line Tools as the active developer directory it failed with "unable to find utility simctl". Xcodes now recognizes this and offers to make the newest installed release Xcode active and retry (main window, Settings platforms list, and Uninstall with Platforms). With only betas installed it explains what to do.

New strings: Alert.Uninstall.WithPlatforms, Alert.Uninstall.PlatformsMessage, Alert.NoActiveXcode.* (English only for now).

Tests

  • test_InstalledRuntimesUsedOnlyByXcode_SkipsSharedAndNotInstalledPlatforms
  • test_LatestInstalledReleaseXcode_SkipsBetasAndNotInstalled, test_LatestInstalledReleaseXcode_NilWithOnlyBetas
  • test_IsMissingDeveloperToolError

🤖 Generated with Claude Code

anciltech and others added 6 commits September 29, 2026 17:09
The info pane listed platforms in the order of Apple's runtime index and
the Platforms window put tvOS before visionOS. Use one order everywhere,
with the newest version first within a platform.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installed platforms could only be removed from the Platforms window.
Each installed platform in the info pane now has an Uninstall button,
confirmed with the same alert the Platforms window uses, with errors
shown in the main window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The uninstall confirmation gets an "Uninstall with Platforms" button
when there are installed simulator platforms that match this Xcode's
SDKs and none of the other installed Xcodes, and lists them. Platforms
are removed after the Xcode itself; shared platforms are never offered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installed and not-installed rows placed their spacers differently, so
Uninstall floated in the middle of the row while Install sat next to the
size. Use one spacer so both sit next to the size column.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removing a platform runs simctl, which only comes with Xcode. With the
Command Line Tools as the active developer directory it failed with
"unable to find utility simctl". Recognize that error and offer to make
the newest installed release Xcode active and retry, from the main
window, the Settings platforms list and Uninstall with Platforms. If
only betas are installed, explain what to do instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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