The short answer
- 01
Simulators have two parts: devices (one data folder each) and runtimes (multi-GB disk images). Deleting a device keeps its runtime.
- 02
Runtimes are the big win. Remove them in Xcode > Settings > Components, or with xcrun simctl runtime delete. Use the dry-run flag first.
- 03
xcrun simctl delete unavailable removes devices the current SDK no longer supports. It does not remove runtimes.
- 04
Never delete runtime folders by hand under /Library/Developer/CoreSimulator. They are managed disk images.
- 05
A deleted runtime can be downloaded again from Xcode or with xcodebuild -downloadPlatform.
Device: one data folder per simulatorRuntime: a multi-GB disk image
- iPhone 14unavailable
- iPad miniunavailable
- iPhone 150.8 GB
- iPad Air0.5 GB
- iPhone 161.1 GB
- iPhone 16 Pro0.9 GB
- iPad Pro0.6 GB
xcrun simctl delete unavailable
Removes devices the current Xcode SDK does not support. Runtimes are untouched.
xcrun simctl runtime delete <identifier>
Removes iOS 17.5. Devices on it can no longer boot. Xcode > Settings > Components does the same.
Freed 0.0 GB
Devices vs runtimes
To delete old iOS simulators, know that Xcode stores two different things.
- Device: one simulated iPhone or iPad with its own apps and data, in
~/Library/Developer/CoreSimulator/Devices/<UDID>. - Runtime: the simulated OS, such as iOS 17.5. It is a disk image of several GB.
Runtimes usually take far more space, and removing a device leaves its runtime in place. For a broader cleanup, see the full guide to freeing disk space on a Mac.
Safe to delete?
| Item | Verdict | What you lose |
|---|---|---|
| Devices unsupported by the current SDK | Safe | Apps and data in those simulators. They cannot run on this Xcode anyway. |
| Runtimes you no longer test on | Safe | That simulated OS. You can download it again. |
CoreSimulator/Caches | Safe | Caches that regenerate while the runtime is installed. |
| Devices with test data you need | Careful | Installed builds, logins and local databases inside the simulator. |
All devices (simctl delete all) | Careful | Every simulator and its data. Xcode recreates default devices later. |
| Runtime folders deleted by hand | Never | Can leave mounted images and a broken Xcode install. Use simctl or Xcode. |
Delete runtimes in Xcode
- Open Xcode > Settings and click Components. Some versions label this pane Platforms.
- Xcode lists installed components with the storage you can recover.
- Click the information button next to a runtime, then choose Delete.
To remove single devices, use Window > Devices and Simulators > Simulators, right-click a simulator and choose Delete.
Delete devices with simctl
xcrun simctl list devices
Lists every simulator with its UDID and state. Removes nothing.
xcrun simctl delete unavailable
Removes devices that the current Xcode SDK does not support. This is the safest cleanup.
xcrun simctl delete <UDID>
Removes one device and its data.
xcrun simctl erase <UDID>
Keeps the device but resets its content, like a factory reset. Use it for a clean simulator, not to shrink the disk footprint.
xcrun simctl delete all removes every simulator device and all app data in them. It does not remove runtimes. Run it only if nothing in the simulators matters.
Delete runtimes with simctl
xcrun simctl runtime list
Lists runtime disk images with their identifiers. Add -v for more detail. Removes nothing.
xcrun simctl runtime delete --dry-run --outdated
Prints which runtimes would go if you removed every runtime that has a newer version with the same runtime identifier. Deletes nothing.
xcrun simctl runtime delete --notUsedSinceDays 120 --dry-run
Previews runtimes not used in the last 120 days. Drop --dry-run to delete them.
xcrun simctl runtime delete <identifier>
Deletes one runtime. Use the identifier from runtime list. Booted simulators on it are shut down and the image is unmounted first.
The command also accepts --unusable and --keep-asset. Check xcrun simctl help runtime on your Xcode version first, since options can change between releases.
Where runtimes are stored
Runtimes are managed disk images under /Library/Developer/CoreSimulator/, in Volumes and Images, or in a Cryptex folder for newer runtimes. Do not delete anything there yourself. Some runtimes linger after deletion in a protected system location, and then simctl runtime delete may report that no disk images were found.
Getting a runtime back
Open Xcode > Settings > Components and click Get next to the platform, or download from Terminal:
xcodebuild -downloadPlatform iOS
Downloads the current iOS runtime. Add -buildVersion with a build number to fetch a specific one.
Find simulators you have not touched in months
Hoardless lists simulator runtimes and devices that have gone unused for 120 days (Confirm tier) and runs xcrun simctl runtime delete or xcrun simctl delete for you after you approve the preview. Its Developer caches view also offers xcrun simctl delete unavailable for CoreSimulator/Devices (Confirm) and moves CoreSimulator/Caches (Auto) to the Trash.
See HoardlessQuestions
What does xcrun simctl delete unavailable do?
It deletes simulator devices that are not supported by the current Xcode SDK. It does not remove runtime images.
How do I see which simulator runtimes are installed?
Run xcrun simctl runtime list for the disk images, or xcrun simctl list runtimes. Xcode > Settings > Components shows sizes and how much you can recover.
How do I delete an iOS simulator runtime?
Use Xcode > Settings > Components and delete it there, or run xcrun simctl runtime delete with the identifier from the list. Use the dry-run flag first.
Where are iOS simulators stored on a Mac?
Devices are in ~/Library/Developer/CoreSimulator/Devices. Runtimes are managed disk images under /Library/Developer/CoreSimulator, in Volumes and Images or Cryptex depending on the Xcode version.
Can I delete the CoreSimulator folder?
Not the runtime images by hand. Remove devices with simctl delete and runtimes with simctl or Xcode. ~/Library/Developer/CoreSimulator/Caches can be removed but regenerates while the runtime exists.
Does deleting a simulator delete the runtime?
No. Devices and runtimes are separate. The runtime stays until you delete it in Components or with simctl runtime delete.
Can I reinstall a deleted runtime?
Yes. Use Xcode > Settings > Components > Get, or run xcodebuild -downloadPlatform iOS.
Why does simctl runtime delete say nothing was found?
It needs the identifier from xcrun simctl runtime list, not the build number. Some orphaned runtimes under a protected system location cannot be removed this way.