How to Delete Old iOS Simulator Runtimes on Mac
Xcode storage is split across platform runtimes, simulator devices, DerivedData, DeviceSupport, and archives. They look related in Finder but have different owners and recovery costs.
Measure before deleting. A downloaded runtime can use several gigabytes, while an individual device also accumulates apps and test data. Removing the wrong thing can cost a long download or erase the state needed to reproduce a bug.
Runtime images and simulator devices are different
A runtime is the downloadable iOS, watchOS, tvOS, or visionOS system image. A simulator device is a virtual iPhone, iPad, or other device that runs on one of those images. Xcode can have many devices backed by one runtime.
Remove devices and runtimes through their owner
xcrun simctl delete unavailable removes device records whose runtime is no longer available:
xcrun simctl delete unavailable
It does not uninstall runtime images. To review and remove downloaded runtimes, use Xcode > Settings > Components. Xcode shows the platform version and recoverable size and handles its CoreSimulator records correctly. Do not delete runtime folders directly from /Library/Developer/CoreSimulator or /System/Library/AssetsV2.
Reset a device when you need clean test state
If a specific simulator has stale app data, launch that device in Simulator and choose Device > Erase All Content and Settings. This resets the selected virtual device without removing the shared runtime. Treat it like erasing a test phone: installed apps, Keychain items, databases, and other device state are lost.
Review devices in Window > Devices and Simulators when you want to remove a named virtual device rather than every unavailable one.
DerivedData, DeviceSupport, and Archives have different value
DerivedData contains build products and indexes that Xcode can recreate. Clear the stale project folder first through Xcode > Settings > Locations; a full wipe makes every project rebuild and re-index.
DeviceSupport holds symbols and support data for physical devices and OS builds. Old entries may still matter for debugging. Archives are more important: a distributed build's archive contains the matching dSYM needed for later crash symbolication. Review archives in Window > Organizer, and preserve every archive tied to a build users can still run.
Mole's Clean review can list superseded downloaded simulator runtimes and asks Apple's simctl runtime delete path to remove a selected runtime. Its Analyze view maps DerivedData, CoreSimulator, and Archives so you can see which category is actually large. Xcode remains the right place for devices, components, and release archives.
For the wider developer-storage workflow, including archives and dSYMs, read how to clean up Xcode files safely.
FAQ
Will deleting a simulator delete my project code?
No. Project source stays outside the simulator. The virtual device's installed apps and test state are removed, so preserve anything needed to reproduce a test case.
Is it safe to delete the entire DeviceSupport folder?
Do not treat it as a blanket cache. Review old OS-build entries selectively, especially if you may need to symbolicate crashes from a physical device.
Does Mole find old simulator runtimes?
Mole can list superseded downloaded runtimes and remove selected ones through simctl. It does not manually delete CoreSimulator folders or decide which active test runtime you still need.