Blog · Developers · November 3, 2026

How to delete Xcode DerivedData, archives and old simulators

If you build iOS or macOS apps, Xcode is probably the biggest hidden block in System Data. Most of it is rebuildable.

DerivedData

~/Library/Developer/Xcode/DerivedData holds build products and indexes. It’s safe to delete. The next build recreates it, so expect one slow build afterwards. Quit Xcode first.

rm -rf ~/Library/Developer/Xcode/DerivedData

You can also use Xcode → Settings → Locations and click the arrow beside Derived Data to open it in Finder.

Archives

~/Library/Developer/Xcode/Archives holds every archive you’ve made, and you may need old ones to symbolicate crash logs. Delete archives for releases you no longer support, and keep the ones that shipped.

Device support files

~/Library/Developer/Xcode/iOS DeviceSupport stores symbols for each iOS version you’ve connected. Old versions are safe to remove; Xcode re-downloads them when you connect a device again.

Simulators

Simulators accumulate devices and whole runtimes.

xcrun simctl delete unavailable
xcrun simctl runtime list

delete unavailable removes devices whose runtime is gone. The runtime list command shows installed runtimes and their sizes; remove one you don’t need with xcrun simctl runtime delete <identifier>. Xcode’s Settings → Components pane can also remove platforms.

Package manager caches

Swift Package Manager caches live in ~/Library/Caches/org.swift.swiftpm and CocoaPods in ~/Library/Caches/CocoaPods. Both are rebuildable.

What to keep

Don’t touch ~/Library/Developer/Xcode/UserData, which holds your key bindings and snippets.

A faster way

Gardner’s Clutter tool finds Xcode DerivedData, old archives and unavailable simulators as part of “Developer tools”, with a reason for each. Archives are always marked as “your call” so they’re never ticked for you. Anything it removes goes to the Trash first.