How to uninstall downloaded Xcode simulator?
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
Xcode simulator storage grows quickly because each downloaded runtime includes a full device image, caches, and support files. The term "duplicate simulator" usually refers to one of two things: an extra runtime you no longer need, or duplicate device entries created after Xcode or runtime upgrades. The cleanup steps are different, so it helps to identify which one you are removing.
Remove an Unneeded Runtime from Xcode
If you downloaded an iOS, watchOS, or tvOS runtime through Xcode, the safest place to remove it is Xcode itself.
On recent Xcode versions, open Xcode > Settings > Platforms. Older versions used Preferences > Components. In that screen, Xcode lists installed runtimes and usually offers a delete control for the ones you downloaded manually.
This is the best first option because Xcode updates its metadata at the same time. You avoid leaving behind a runtime package that the Simulator app still thinks exists.
Remove Duplicate or Unavailable Devices
Sometimes the runtime is fine, but the Simulator device list contains stale or duplicated devices. In that case, use simctl, which is Apple's supported command-line interface for CoreSimulator.
Start by listing runtimes and devices:
If Xcode upgrades left behind entries marked unavailable, remove them with:
That command is low risk and often clears out the clutter that looks like duplicate simulators in the UI.
If you want to delete a specific duplicate device, copy its UDID from simctl list devices and delete only that device:
You are deleting a virtual device record here, not an entire runtime. Xcode can recreate standard devices later if needed.
Check Disk Usage Before and After
When storage is the main concern, measure the size before you delete anything. That makes it obvious whether you are removing devices, caches, or full runtimes.
The first path contains per-user simulator data such as devices and app containers. The second path contains shared runtime bundles. If the second path is consuming tens of gigabytes, uninstalling a runtime will save more space than deleting one duplicate device.
Manual Cleanup When Xcode Does Not Show a Delete Button
If a runtime no longer appears correctly in Xcode, you can clean up in a more direct way, but do it carefully:
- Quit Xcode and the Simulator app.
- Shut down any booted simulators.
- Remove only the runtime bundle you no longer need.
- Reopen Xcode and let it refresh its simulator list.
Use this command first to make sure nothing is still running:
For most developers, it is better to stop after that and use the Xcode UI. Manual deletion from /Library/Developer/CoreSimulator/Profiles/Runtimes works, but it is easier to remove the wrong runtime and then discover that an active project still depends on it.
A Practical Cleanup Flow
A reliable cleanup sequence looks like this:
- Remove stale device records with
xcrun simctl delete unavailable. - Recheck the Simulator app. If the duplicates are gone, stop there.
- If storage is still the issue, uninstall old runtimes from
Xcode > Settings > Platforms. - Keep only the runtimes required by your supported OS matrix.
That order matters because duplicate device records are common and easy to clean, while runtime removal is more disruptive and may trigger future downloads.
Common Pitfalls
The biggest mistake is deleting a device when the real problem is an obsolete runtime. Deleting a device frees very little disk space compared with removing a whole downloaded runtime.
Another mistake is manually removing files while Xcode or Simulator is still open. CoreSimulator caches state aggressively, so open processes can recreate confusing metadata or leave Xcode showing ghost devices until the next restart.
Developers also sometimes delete every old runtime and then discover their CI or QA process still tests an older iOS version. Before removing a runtime, compare the installed versions with the minimum OS versions you actively support.
Finally, do not confuse ~/Library/Developer/CoreSimulator with the Xcode app bundle itself. Removing simulator data does not uninstall Xcode, and removing Xcode does not automatically clean every simulator artifact.
Summary
- Use
Xcode > Settings > Platformsto uninstall downloaded runtimes safely. - Use
xcrun simctl delete unavailableto remove stale device entries that look like duplicates. - Delete a specific device by UDID only when you know the duplicate is just a device record.
- Check disk usage so you know whether devices or runtimes are consuming the space.
- Quit Xcode and Simulator before any manual cleanup to avoid stale CoreSimulator state.

