The simulator runtimes and devices nobody deletes
Every iOS version you have ever simulated leaves a runtime behind, and every device you created keeps its own disk image. Both are several gigabytes each.
Simulators are two separate piles of disk, and clearing one does nothing about the other. Together they are frequently the largest reclaimable thing on a Mac used for iOS work, and both grow with no ceiling.
Pile one: runtimes
A runtime is a whole copy of an iOS release. Every version you have ever simulated has one, they are 6 to 10 GB each, and updating Xcode adds a new one without removing the old:
xcrun simctl runtime listNewer versions are downloaded separately from Xcode, which is why they survive an Xcode reinstall and why deleting Xcode does not reclaim them.
Pile two: devices
Each simulated device has its own disk image with whatever you installed on it. Every app you ever ran on a simulator is still in one:
du -sh ~/Library/Developer/CoreSimulator/Devices
xcrun simctl list devicesDevices tied to a runtime you have since removed show as unavailable, keep their full size, and can never be booted again. Those are pure waste and there is a command for exactly them.
Clearing both safely
# Devices whose runtime is gone. Always safe.
xcrun simctl delete unavailable
# Wipe installed apps and data, keep the devices themselves
xcrun simctl erase all
# Remove a specific runtime you no longer test against
xcrun simctl runtime list
xcrun simctl runtime delete <identifier>What each one costs you
| Command | Frees | Costs you |
|---|---|---|
| delete unavailable | Often 10 to 40 GB | Nothing. Those devices cannot run |
| erase all | Whatever apps and data were installed | A fresh install on next run |
| runtime delete | 6 to 10 GB each | A download if you test that version again |
The rest of the Xcode footprint
Simulators are one of four things Xcode leaves around. Derived data, archives and device support files are covered in Xcode derived data, and if the Mac is used for more than iOS then node_modules and container images are usually larger still.
For the order to work through all of it, see the safest order to free 100 GB.
Common questions
Why are iOS simulators taking up so much space?
Two reasons at once. Each runtime is a full copy of an iOS release at 6 to 10 GB, and every version you have simulated keeps one. Separately, each simulated device has its own disk image holding every app you ever installed on it.
Is xcrun simctl delete unavailable safe?
Yes. It removes only simulated devices whose runtime is no longer installed, which cannot be booted under any circumstances. It commonly frees tens of gigabytes and costs nothing.
Does deleting Xcode remove the simulators?
No. Newer runtimes are downloaded separately from Xcode and live outside it, so they survive an uninstall and a reinstall. They have to be removed with xcrun simctl runtime delete.