Xcode

Xcode DerivedData and DeviceSupport: the classic hidden giant

Xcode can quietly keep tens of gigabytes in build artifacts and simulator/device support files. This post explains where it grows and how to clean without breaking active projects.

Updated:

Read time: 6 min

Why this silently grows

Every build writes intermediate outputs, indexes, and debug data. When you switch branches, SDK versions, and test devices, these folders keep accumulating. Simulator runtimes and DeviceSupport folders are especially large because each iOS version can add a separate set of files.

How Free Mac Space finds it

The Xcode category scans dedicated development paths such as ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/Xcode/Archives, ~/Library/Developer/Xcode/iOS DeviceSupport, ~/Library/Developer/CoreSimulator, and Xcode-specific cache folders. Results are sorted by size so you can immediately see which workspace or simulator image is taking the most space.

How cleanup is handled

You review path, size, and modified time before selecting items. Cleanup-selectable entries are moved to Trash instead of being permanently deleted. If an item fails validation or is outside allowed roots, cleanup is blocked and recorded so nothing risky is deleted silently.

Safety boundary

Release archives can be business-critical. Free Mac Space does not auto-delete for you. It asks you to confirm each item and keeps a local cleanup audit log for traceability.

Paths covered in Free Mac Space

  • ~/Library/Developer/Xcode/DerivedData
  • ~/Library/Developer/Xcode/Archives
  • ~/Library/Developer/Xcode/iOS DeviceSupport
  • ~/Library/Developer/CoreSimulator
  • ~/Library/Caches/com.apple.dt.Xcode

Recommended monthly check

  • Sort by size and focus on stale DerivedData folders first.
  • Keep recent Archives related to production releases.
  • Re-run a scan after cleanup to verify recovered space.

Step-by-step workflow

  1. 1. Identify why Xcode storage keeps growing

    Every build writes intermediate outputs, indexes, and debug data. When you switch branches, SDK versions, and test devices, these folders keep accumulating. Simulator runtimes and DeviceSupport folders are especially large because each iOS version can add a separate set of files.

  2. 2. Inspect the highest-impact paths first

    The Xcode category scans dedicated development paths such as ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/Xcode/Archives, ~/Library/Developer/Xcode/iOS DeviceSupport, ~/Library/Developer/CoreSimulator, and Xcode-specific cache folders. Results are sorted by size so you can immediately see which workspace or simulator image is taking the most space. Priority paths: ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/Xcode/Archives, ~/Library/Developer/Xcode/iOS DeviceSupport, ~/Library/Developer/CoreSimulator, ~/Library/Caches/com.apple.dt.Xcode.

  3. 3. Confirm the safety boundary before acting

    Release archives can be business-critical. Free Mac Space does not auto-delete for you. It asks you to confirm each item and keeps a local cleanup audit log for traceability.

  4. 4. Apply a review-first cleanup workflow

    You review path, size, and modified time before selecting items. Cleanup-selectable entries are moved to Trash instead of being permanently deleted. If an item fails validation or is outside allowed roots, cleanup is blocked and recorded so nothing risky is deleted silently.

  5. 5. Monthly validation step 1

    Sort by size and focus on stale DerivedData folders first.

  6. 6. Monthly validation step 2

    Keep recent Archives related to production releases.

  7. 7. Monthly validation step 3

    Re-run a scan after cleanup to verify recovered space.

Frequently asked questions

  • What hidden storage sources are covered for Xcode?

    Primary sources include DerivedData, Archives, iOS DeviceSupport, CoreSimulator. Every build writes intermediate outputs, indexes, and debug data. When you switch branches, SDK versions, and test devices, these folders keep accumulating. Simulator runtimes and DeviceSupport folders are especially large because each iOS version can add a separate set of files.

  • Which macOS paths should I inspect first?

    Start with: ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/Xcode/Archives, ~/Library/Developer/Xcode/iOS DeviceSupport, ~/Library/Developer/CoreSimulator, ~/Library/Caches/com.apple.dt.Xcode. The Xcode category scans dedicated development paths such as ~/Library/Developer/Xcode/DerivedData, ~/Library/Developer/Xcode/Archives, ~/Library/Developer/Xcode/iOS DeviceSupport, ~/Library/Developer/CoreSimulator, and Xcode-specific cache folders. Results are sorted by size so you can immediately see which workspace or simulator image is taking the most space.

  • How can I reduce this storage safely?

    You review path, size, and modified time before selecting items. Cleanup-selectable entries are moved to Trash instead of being permanently deleted. If an item fails validation or is outside allowed roots, cleanup is blocked and recorded so nothing risky is deleted silently. Release archives can be business-critical. Free Mac Space does not auto-delete for you. It asks you to confirm each item and keeps a local cleanup audit log for traceability.

  • What should the monthly review checklist look like?

    Sort by size and focus on stale DerivedData folders first. Keep recent Archives related to production releases. Re-run a scan after cleanup to verify recovered space.

Continue in the matching solution

If you're ready to act, continue in "Xcode cache cleanup on macOS" with a step-by-step workflow.

Open matching solution page

More hidden storage cases

Docker

Docker Desktop VM disk: why it keeps growing after projects end

Docker images, layers, and build cache are stored inside Docker-managed directories and VM disk files. They can grow fast and stay invisible to normal Finder checks.

Read article

Homebrew

Homebrew cache folders: small installs, surprisingly large history

Homebrew keeps download and metadata caches that can survive across upgrades. They are safe cleanup candidates when they become oversized.

Read article

JavaScript Toolchains

npm, pnpm, Yarn, Bun caches: hidden duplicates across projects

Package managers are fast because they cache aggressively. On multi-project Macs, these stores can consume massive space even when repos are removed.

Read article