Guides

How to delete old iOS simulator runtimes on a Mac

Quick answer

Each simulator runtime (iOS 17, iOS 18, iOS 26…) is a disk image of about 8 GB. List them with xcrun simctl runtime list, then delete one with xcrun simctl runtime delete <identifier>. Add --dry-run first to see what would happen. Simulators that are running are shut down by the delete, so close them first.

Runtimes vs simulators

A runtime is a whole iOS, watchOS, tvOS or visionOS version for the simulator. A simulator (device) is one iPhone or iPad that uses a runtime, with its own apps and data. On the Mac Derived was built on, three iOS runtimes took about 8 GB each, and the 24 simulator devices another 24 GB.

Since Xcode 15, runtimes live in a system location as disk images, not inside ~/Library. Deleting files there by hand isn't the way to remove them; use Apple's simctl tool instead.

See what you have

xcrun simctl runtime list

This lists each installed runtime with its identifier and state. For sizes and when each was last used, use the JSON version:

xcrun simctl runtime list -j

Look for sizeBytes and lastUsedAt. You can also see installed platforms in Xcode › Settings › Components, which is also where you download a runtime again.

Delete a runtime

  1. Quit Simulator, or shut down any simulator that uses the runtime.
  2. Check what would happen:
    xcrun simctl runtime delete <identifier> --dry-run
  3. Delete it:
    xcrun simctl runtime delete <identifier>

To remove every runtime you haven't used in six months in one go:

xcrun simctl runtime delete --notUsedSinceDays 180 --dry-run

Drop --dry-run when the list looks right.

Delete old simulator devices too

Simulators whose runtime is gone stay listed as unavailable and keep their data. Remove all of them with:

xcrun simctl delete unavailable

Each device's data lives in ~/Library/Developer/CoreSimulator/Devices/<UDID>. One heavily used iPhone simulator on our test Mac held 12 GB on its own.

CommandWhat it does
xcrun simctl runtime listLists installed runtimes
xcrun simctl runtime delete <id> --dry-runShows what deleting would do
xcrun simctl runtime delete --notUsedSinceDays 180Deletes runtimes unused for 180 days
xcrun simctl delete unavailableDeletes simulators whose runtime is gone
xcrun simctl delete <udid>Deletes one simulator and its data

Questions

Can I get a deleted runtime back?

Yes. Download it again in Xcode › Settings › Components. It's a large download, so keep the versions you still test on.

How much space does a simulator runtime take?

About 8 GB for a recent iOS runtime on our test Mac, plus whatever the simulators that use it have stored.

Is it safe to delete simulators?

Yes, but the apps and data inside them go too. Nothing on real devices or in your projects is affected.

What does "unavailable" mean?

The simulator's runtime is no longer installed, so this Xcode can't run it. Those are safe to delete.