Simulators · free up space

How to delete old iOS simulator runtimes

Each runtime is a complete copy of iOS — several gigabytes — and Xcode keeps every version you have ever installed. xcrun simctl runtime list shows them; delete is by identifier.

Runtimes and devices are two different things

A runtime is the operating system itself: one copy of iOS 17.5, another of 18.2, another of 26.0. A device is a simulated iPhone that runs on top of one. Devices are small. Runtimes are not, and deleting simulated iPhones frees almost nothing while the runtimes stay.

On the Mac this app was built on: 8.49 GB of runtimes against 6.08 GB of devices. Measured again on 1 October 2026, after the older runtimes had gone, a single runtime — iOS 26.5 — still came to 7.9 GB on its own, with 5.66 GB of devices on top. One current runtime is the floor for anyone who builds for iOS, and it is not small.

Listing what you have

xcrun simctl runtime list
xcrun simctl list devices

The runtime list names each one with an identifier. Anything marked unusable or unsupported is a straightforward delete — Xcode cannot run it.

Deleting them

# one runtime, by the identifier from the list
xcrun simctl runtime delete <identifier>

# every runtime Xcode can no longer use
xcrun simctl runtime delete unusable

# simulated devices that have lost their runtime
xcrun simctl delete unavailable

What it costs

  • Testing against that iOS version, until you download it again from Xcode's Platforms settings.
  • A download of several gigabytes if you do need it back, which is the whole cost — nothing is lost permanently.
  • Nothing else. App data inside a simulated device goes with the device, not with the runtime.

Keep the runtime your app's deployment target needs. If you support iOS 15, an iOS 15 simulator is the only way to test it, and re-downloading old runtimes is slower than keeping them.

Remove runtimes before Xcode itself goes, since simctl is part of Xcode: how to uninstall Xcode has the order.

Where the app comes in

RefreshYourMac reads runtimes and devices through simctl rather than guessing at folders, lists them with their real sizes, and shuts down a running simulator before removing anything that belongs to it. It also finds DerivedData, archives and device support in the same scan, alongside everything else in freeing up space on a Mac.

What to do next: see these numbers for your own Mac. Download RefreshYourMac free, or get it on the Mac App Store.

What it costs to have an app do this

RefreshYourMacCleanMyMacMacKeeper
Pay once$24.99€119.95 on MacPaw’s store; $89.99 for CleanMyMac X on the Mac App Storesubscription only
Yearly$14.99 a year, first 7 days free$39.99/yr on the Mac App Store; €39.95/yr on MacPaw’s store€71.40 for the first year, 1 Mac. Their page shows it against a €119.40 list price
Monthly$1.99 a month$9.99/mo€10.95/mo
Account neededNoYesYes

Before you pay anything, both versions give you 3 free scans. CleanMyMac and MacKeeper prices read from their own pages and the Mac App Store on 27 October 2026; the full comparison is at RefreshYourMac vs CleanMyMac and MacKeeper.

Frequently asked questions

What is the difference between a simulator runtime and a simulator device?

A runtime is the operating system itself, one copy of iOS per version; a device is a simulated iPhone that runs on top of one. Devices are small and runtimes are several gigabytes each, so deleting simulated iPhones frees almost nothing while the runtimes stay.

What happens if I delete an iOS simulator runtime?

You lose testing against that iOS version until you download it again from Xcode’s Platforms settings, a download of several gigabytes. Nothing is lost permanently, and app data inside a simulated device goes with the device, not with the runtime.

Which simulator runtimes should I keep?

Keep the runtime your app’s deployment target needs. If you support iOS 15, an iOS 15 simulator is the only way to test it, and re-downloading old runtimes is slower than keeping them. Anything marked unusable or unsupported is a straightforward delete, because Xcode cannot run it.

How do I remove simulators that have lost their runtime?

Run xcrun simctl delete unavailable, which removes simulated devices that have lost their runtime. To remove every runtime Xcode can no longer use, run xcrun simctl runtime delete unusable.