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
- Quit Simulator, or shut down any simulator that uses the runtime.
- Check what would happen:
xcrun simctl runtime delete <identifier> --dry-run - 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.
| Command | What it does |
|---|---|
xcrun simctl runtime list | Lists installed runtimes |
xcrun simctl runtime delete <id> --dry-run | Shows what deleting would do |
xcrun simctl runtime delete --notUsedSinceDays 180 | Deletes runtimes unused for 180 days |
xcrun simctl delete unavailable | Deletes 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.