How to delete old iOS simulator runtimes
Every time Xcode downloads an iOS, watchOS, tvOS or visionOS simulator runtime, it keeps it, and each one is roughly 7–10 GB. After a couple of Xcode upgrades it's common to have four or five runtimes you never boot. Here's how to find and remove them safely.
1. See which runtimes you have
xcrun simctl runtime list
This lists every runtime disk image with its version, build and size, and whether it's ready. Runtimes aren't stored in your home folder: since Xcode 15 they live as disk images in a secure system area that Xcode manages, which is why deleting folders in Finder doesn't work.
2. Preview what would be removed
The safest start is to remove only runtimes you haven't used recently. Add --dry-run to see the list first:
xcrun simctl runtime delete --notUsedSinceDays 60 --dry-run
3. Delete them
Drop --dry-run to actually delete, or remove one runtime by its identifier from the list:
xcrun simctl runtime delete --notUsedSinceDays 60
xcrun simctl runtime delete <identifier>
Any booted simulators using that runtime are shut down first. You can also do this in Xcode: Settings › Components (called Platforms in older Xcode versions), select a runtime and click the minus button.
Keep the runtime your projects' deployment target needs. If you delete it, Xcode will offer to download it again (another 7–10 GB) the next time you pick a simulator on that version.
4. Remove simulators that can no longer run
Simulator devices (their apps, data and settings) are separate from runtimes and live in ~/Library/Developer/CoreSimulator/Devices. When a runtime is gone, its devices become "unavailable" but keep their data. Clean them up with:
xcrun simctl delete unavailable
To reset a simulator you still use without deleting it, use xcrun simctl erase <device>.
How much will I get back?
Roughly 7–10 GB per runtime, plus whatever the unavailable devices held (often a few GB if you installed large apps in them). Check the Storage panel or xcrun simctl runtime list again afterwards.
Rather see it all at once? Storage Cleaner lists simulator runtimes, unavailable simulators and the rest of Xcode's leftovers with when each was last used. Runtimes are removed through Xcode's own tool and can't be undone, which the app tells you before confirming. Everything else goes to the Trash with Undo. Scanning is free.
Try Storage Cleaner freeFrequently asked
Is it safe to delete simulator runtimes? Yes. They're downloads, not your work. The only cost is downloading one again if you need that iOS version later.
Why don't I see runtimes in ~/Library? Modern Xcode stores them as signed disk images in a system location and mounts them on demand. Use simctl or Xcode's Components settings rather than deleting files by hand.
What about DerivedData and Device Support? Those are separate and often just as large. See how to clear DerivedData and whether iOS DeviceSupport is safe to delete.