Xcode Derived Data, simulators and device support: how to reclaim 20–60 GB
Xcode keeps every build product, every simulator runtime and every device’s symbols it has ever seen. On a developer Mac, ~/Library/Developer alone can reach tens of GB, all counted as System Data.
Derived Data
Build caches and indexes. Safe to delete; Xcode rebuilds them on the next build (the next build will be slower). Quit Xcode, then:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
Unavailable simulators
xcrun simctl delete unavailable
Removes simulators whose runtimes are gone. For old runtimes you no longer need, use Xcode → Settings → Platforms and remove them there.
iOS DeviceSupport
~/Library/Developer/Xcode/iOS DeviceSupport holds symbols for each OS version of every device you have connected. Removing old versions is safe; Xcode re-creates them when you reconnect a device.
Archives
~/Library/Developer/Xcode/Archives holds your app archives. Delete these only if you are sure you don’t need the dSYMs for crash symbolication.
McCleaner reports all of these as separate lines with their sizes and risk level before you remove anything.
McCleaner scans for free and changes nothing until you pick items to clean.
Get McCleaner
Disclosure: this guide is published by the developer of McCleaner. Scanning is free; cleaning is paid, from €1.99. Back up important data before deleting anything. Commands are provided as is.