Developer guide

How to delete old iOS simulators and runtimes

Delete old iOS simulators and runtimes with Xcode or simctl, and know which part holds the space.

3 safe2 careful1 never

updated read 4 minfor Xcode 16 and later on macOS 15 Sequoia and macOS 26 Tahoe

The short answer

  1. 01

    Simulators have two parts: devices (one data folder each) and runtimes (multi-GB disk images). Deleting a device keeps its runtime.

  2. 02

    Runtimes are the big win. Remove them in Xcode > Settings > Components, or with xcrun simctl runtime delete. Use the dry-run flag first.

  3. 03

    xcrun simctl delete unavailable removes devices the current SDK no longer supports. It does not remove runtimes.

  4. 04

    Never delete runtime folders by hand under /Library/Developer/CoreSimulator. They are managed disk images.

  5. 05

    A deleted runtime can be downloaded again from Xcode or with xcodebuild -downloadPlatform.

Devices sit on runtimesExample Mac

Device: one data folder per simulatorRuntime: a multi-GB disk image

  • iPhone 14unavailable
  • iPad miniunavailable
No supported runtime0 GB
  • iPhone 150.8 GB
  • iPad Air0.5 GB
iOS 17.5 runtime7.1 GB
  • iPhone 161.1 GB
  • iPhone 16 Pro0.9 GB
  • iPad Pro0.6 GB
iOS 18.6 runtime8.4 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.

Simulator devices and the runtimes they run on, on an example Mac: deleting unavailable devices leaves runtimes alone, and the runtimes hold most of the space.

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?

ItemVerdictWhat you lose
Devices unsupported by the current SDKSafeApps and data in those simulators. They cannot run on this Xcode anyway.
Runtimes you no longer test onSafeThat simulated OS. You can download it again.
CoreSimulator/CachesSafeCaches that regenerate while the runtime is installed.
Devices with test data you needCarefulInstalled builds, logins and local databases inside the simulator.
All devices (simctl delete all)CarefulEvery simulator and its data. Xcode recreates default devices later.
Runtime folders deleted by handNeverCan leave mounted images and a broken Xcode install. Use simctl or Xcode.

Delete runtimes in Xcode

  1. Open Xcode > Settings and click Components. Some versions label this pane Platforms.
  2. Xcode lists installed components with the storage you can recover.
  3. 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 Hoardless

Questions

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.