The Hidden Cost of Xcode: How to Safely Reclaim 50GB+ from DerivedData
If you build for iOS or macOS, you are paying a 'Developer Tax' on your SSD storage.
Every time you build a project, Xcode generates intermediate files, indexes, and debug symbols. These live in a folder called DerivedData. And here is the problem: Xcode almost never deletes them.
We have seen DerivedData folders grow to 50GB, 80GB, or even 100GB+ on active developer machines. If you are seeing "System Data" eating your drive space, this is likely the primary culprit.
What is DerivedData?
DerivedData includes:
- Build Intermediates: Object files (
.o) compiled from your source code. - Module Caches: Pre-compiled headers to speed up indexing.
- Indexes: The data that powers generic code completion and jump-to-definition.
- Logs: Test results and build logs.
Path: ~/Library/Developer/Xcode/DerivedData
Apple keeps these files to make your next build faster. But files for projects you touched once 6 months ago are still sitting there, taking up gigabytes.
The Manual Cleanup (CLI Method)
You can safely delete everything in DerivedData. The only "penalty" is that your first build after cleanup will take longer as Xcode rebuilds the indexes and cache.
To clean it manually via Terminal:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
Note: Ensure Xcode is fully closed before running this command to avoid any potential file access errors.
The "iOS DeviceSupport" Bloat
Another massive hidden folder is iOS DeviceSupport. Every time you connect a physical device with a new iOS version, Xcode copies symbols from it.
Path: ~/Library/Developer/Xcode/iOS DeviceSupport
If you have valid symbols for iOS 14.1, 14.2, 14.3... up to iOS 19, you might have 30GB of redundant data. You only really need the symbols for the devices you are currently testing on.
Safe to delete? Yes. If you connect a device and Xcode needs symbols, it will just re-fetch them (which takes a few minutes).
Cleaning Simulators
Every iOS Simulator runtime you download takes space. And every distinct simulator device you create reserves its own storage.
To delete data for simulators you can no longer use:
xcrun simctl delete unavailable
The Safe, Visual Way
Navigating ~/Library/Developer is risky. One wrong rm -rf and you could wipe your certifications or preferences.
This is why we built DissectMac.

DissectMac visualizes your Developer folder as a treemap. You can instantly see:
- DerivedData blocks (usually massive).
- Archives (old App Store submission builds).
- CoreSimulator caches.
Instead of running blind terminal commands, you can:
- Right-click the
DerivedDatablock. - Select "Move to Trash".
- Verify that you are only deleting build artifacts, not source code.
Stop paying the developer tax. Keep your source code, delete the build bloat.
Continue Reading
Docker and Xcode Are Eating Your SSD. Here's the Fix.
That Docker.raw file can grow to 60GB+. Your DerivedData keeps expanding. iOS Simulator caches pile up. Here's how to clean it all.
What is 'Other Volumes in Container'? (And Why It's So Large)
Confused by 'Other Volumes in Container' in Disk Utility? It's not a bug—it's APFS. Learn what it means and 3 ways to reclaim space →
GrandPerspective is Great. But It's Time for Something Modern.
GrandPerspective is free but feels dated on Apple Silicon Macs. Compare speed, UI & features with a modern alternative. Both are free →