Where Xcode Hides Your Storage
Xcode stores build artifacts, device support files, simulator data, and old archives across multiple locations in your Library. Most developers don't realize how much space this consumes until their Mac runs out.
Run this to see the full picture:
Typical Space Usage
| Location | Typical Size | Safe to Delete? |
|---|---|---|
| DerivedData | 10-50 GB | Yes, completely safe. Rebuilds on next compile. |
| iOS DeviceSupport | 2-5 GB per iOS version | Yes for old iOS versions you no longer test on. |
| CoreSimulator | 5-30 GB | Delete unavailable simulators. Keep ones you test on. |
| Archives | 2-20 GB | Yes for old builds you don't need. Keep recent releases. |
| Xcode Caches | 1-5 GB | Yes, Xcode rebuilds these. |
Step-by-Step Cleanup
1. Delete DerivedData (Biggest Win)
DerivedData contains build products, indexes, and logs for every project you've ever opened. This is almost always the biggest folder and is completely safe to delete.
Xcode will rebuild the data for any project you open next. Your first build will be slower (cold cache), then back to normal.
2. Remove Old iOS DeviceSupport
Every time you connect an iOS device running a new version, Xcode downloads debug symbols for that version. These accumulate over years.
Delete folders for iOS versions you no longer test against. If you only support iOS 17+, everything below that can go.
3. Clean Up Simulators
Remove simulators that are no longer available in your current Xcode version:
For a full reset of all simulators (if you want to start fresh):
4. Delete Old Archives
Archives are full app builds stored for App Store submissions and crash symbolication. Old ones from previous app versions are usually safe to remove.
Open Xcode → Window → Organizer → Archives tab. Delete old archives you don't need for crash log symbolication.
5. Clear Xcode Caches
If you use other dev tools, these can also eat massive storage: Docker (15-60 GB via Docker.raw), node_modules (run npx npkill to find and delete old ones), CocoaPods cache (pod cache clean --all), Homebrew (brew cleanup -s).
How to Prevent It from Growing Back
DerivedData will always grow back as you work. The best approach is to clean it periodically (monthly) or use a tool that does it for you with proper risk classification so you know what's safe.
MacCare cleans dev caches safely
MacCare scans all Xcode and dev tool caches with color-coded risk levels. Green items are safe to delete, orange items might slow down your next build. You always know exactly what you're removing.
⬇ Download Free Trial$29/year or $69 lifetime · macOS 14+ · Apple-notarized