If you build apps on Mac every day, DerivedData eventually becomes one of those folders you know is important, but also one you hope someone else has already cleaned.
Then one day the folder is huge, the disk is tight, Xcode feels heavier than usual, and the cleanup question becomes immediate: can you delete it safely, or are you about to turn your workday into rebuild chaos?
The short answer is that DerivedData is usually one of the safer Xcode cleanup targets. The longer answer is that developers often overfocus on DerivedData and miss the rest of the Apple ecosystem footprint sitting nearby.
Quick answer
DerivedDatais generated Xcode build and indexing output.- It is usually safer to remove than many other developer folders because Xcode can rebuild it.
- The tradeoff is time: slower builds, reindexing, and heavier simulator or preview startup after cleanup.
DerivedDatais not the whole Apple developer footprint.Archives,CoreSimulator, andiOS DeviceSupportoften grow nearby.- Selective cleanup is often better than wiping everything if only a few stale projects are large.
- Developer cleanup should be ecosystem-aware and risk-aware, not just "delete the biggest folder you can find."
What is usually safe to clean vs what needs caution
Usually safe first
Generated outputDerivedData and cache-like Apple dev artifacts are usually the first review targets because they are meant to regenerate.
Caution profiles
State and deliverablesArchives, CoreSimulator, and iOS DeviceSupport may preserve artifacts, runtimes, or simulator state you still need.
Expected rebuild cost
Main tradeoffThe normal cost after cleanup is slower builds, reindexing, and heavier simulator or preview startup, not permanent project data loss.
What Xcode DerivedData actually is
DerivedData is where Xcode keeps generated build output and related working data for development workflows. In practical terms, that usually means build products, indexes, intermediate files, previews-related output, and other generated artifacts that help Xcode move faster the next time you build or open the project.
That is why the folder grows so easily. Every project, target, branch, SDK combination, and simulator workflow adds more generated state over time.
This also explains why developers treat DerivedData differently from ordinary project files:
- it is not the source of truth for your app code;
- it exists to save build and indexing time;
- it is expected to regenerate when needed.
That regeneration behavior is the reason DerivedData is usually classed as a safer cleanup target than many app-owned or system-owned paths.
Why Xcode DerivedData gets so large
The simplest answer is accumulation.
One active app can already generate a lot of build output. Multiple apps, multiple branches, previews, simulator runs, test builds, and package resolution history can push the folder much higher than most developers expect.
Common reasons DerivedData balloons:
- several active projects share the same machine;
- stale per-project folders remain long after the project stopped mattering;
- preview, indexing, and simulator-heavy work generates extra churn;
- long-lived Xcode environments keep old build output longer than you think;
- you clean other things but never touch generated Apple dev artifacts.
The important point is that large DerivedData is not unusual on a developer Mac. It becomes a problem only when you assume the right answer is always “delete everything now” without checking what else is large and whether your timing is good.
What else near DerivedData usually gets big
Developers often blame DerivedData because it is familiar, but it is only one profile in the Apple ecosystem footprint.
StorageRadar’s current Apple-side dev profiles separate these Xcode-adjacent areas because they do not share the same risk model:
| Profile | Typical path | Why it grows | Risk profile |
|---|---|---|---|
| Xcode DerivedData | ~/Library/Developer/Xcode/DerivedData | Build products, indexes, intermediates, generated project output | Safe |
| Xcode Archives | ~/Library/Developer/Xcode/Archives | Distribution archives and exported build history | Caution |
| CoreSimulator Data | ~/Library/Developer/CoreSimulator | Installed runtimes, simulator state, app data inside simulators | Caution |
| iOS DeviceSupport | ~/Library/Developer/Xcode/iOS DeviceSupport | Device support assets for connected iOS versions | Caution |
| SwiftPM Cache | ~/Library/Caches/org.swift.swiftpm | Package manager cache data | Safe |
This is the real reason a full Developer Folder scan is more useful than tunnel vision on one directory. If DerivedData is 12 GB but CoreSimulator is 35 GB and Archives is 18 GB, the cleanup plan changes completely.
Apple developer folders that often grow with DerivedData
Archives
Archives are not just generated scratch space. They can represent deliverables you may actually want to keep. That is why they belong in a different cleanup bucket from DerivedData.
CoreSimulator
Simulator data can quietly outgrow DerivedData, especially if you test across many runtimes or keep simulator state around for a long time. It is not just one disposable cache folder. It may contain simulator environments you still care about.
If simulator storage is the real issue, the focused guide on Xcode Simulator Taking Up Space on Mac? What to Clean First goes deeper on runtimes, device state, and cleanup tradeoffs.
iOS DeviceSupport
This area grows as different physical device versions and support assets accumulate. It is often overlooked because it is less famous than DerivedData, but still large enough to matter.
Package-related caches
These can be safer cleanup targets than simulator or archive data, but they are still separate from DerivedData. If you are chasing reclaimable space seriously, treat each profile as its own cleanup problem.
When selective cleanup is better than deleting everything
The default developer reflex is often total cleanup: wipe the whole folder, let Xcode rebuild, move on.
That can be fine, but it is not always the best move.
Selective cleanup is usually better when:
- only a few old projects are responsible for most of the size;
- you need fast, predictable builds for your current active apps;
- you do not want to force a full reindex across everything today;
- you suspect stale branches or retired workspaces are the real issue, not current projects.
A full wipe is more reasonable when:
- the whole folder is bloated across many old projects;
- you want a clean reset of generated output;
- the current slowdown is worth trading for a controlled rebuild window;
- you suspect global generated state is part of the problem.
This is really a timing decision disguised as a storage decision. The space savings may be similar, but the workflow cost is different.
Developer cleanup rule: Delete the oldest certainty first. If a few stale project folders explain most of the size, selective cleanup is often better than a full reset.
How to clean Xcode DerivedData without creating rebuild chaos
The safe goal is not just “free space.” The safe goal is “free the right space while keeping the next few hours of development predictable.”
1. Review the whole developer picture first
Start from Developer Folder if you have it, not from DerivedData in isolation. The point is to see whether Xcode output is really the dominant issue or whether other Apple dev profiles are bigger.
If the broader developer footprint is the problem, cleaning only DerivedData may reclaim less than you expect.
2. Separate safe generated output from caution profiles
This distinction matters:
DerivedDataand caches are usually safe-style cleanup targets because they are generated;Archives,CoreSimulator, andiOS DeviceSupportdeserve more caution because they may preserve artifacts, runtimes, or state you still need.
Once you blur those together, “developer cleanup” becomes just another dangerous folder purge.
3. Decide between selective and total cleanup deliberately
Before you remove anything, answer these questions:
- Are the largest
DerivedDatadirectories tied to stale or active projects? - Do you need fast builds and indexing today?
- Are neighboring profiles actually larger than
DerivedData? - Will a full rebuild window hurt your current sprint, demo, or release work?
That short review prevents most unnecessary full wipes.
4. Expect rebuild cost, not data loss
For DerivedData, the normal cost of cleanup is usually:
- slower next build;
- index rebuilds;
- heavier previews or simulator startup;
- temporary friction while generated output returns.
That is very different from deleting app support data, archives you still need, or simulator state you cared about. Developer cleanup only stays safe when you keep those categories separate.
5. Use a developer cleanup workflow, not generic file deletion
A plain file browser can tell you that something is large. It cannot tell you whether the path is a known dev profile, whether it is in a Safe or Caution bucket, what the likely consequences are, or whether a guided preflight is required before cleanup.
That missing context is why dev cleanup should not collapse into normal “largest files” cleanup once the stakes rise.
Why Xcode cleanup is different from ordinary file cleanup
Ordinary file cleanup asks a simple question: what is large?
If you want the broader guide across Xcode, Docker, SDK-heavy setups, and developer risk profiles, read How to Safely Clean Developer Caches on Mac.
Developer cleanup needs to ask harder questions:
- is this generated or user-authored;
- is this profile
Safe,Caution, orDangerous; - do I need
Dry Runbefore I trust the reclaimable size; - do I need
Guided Preflightbecause the profile has workflow risk; - what blockers, warnings, or consequences should I review first?
That difference is built into StorageRadar’s Dev Cleanup model. It does not operate as arbitrary deletion. It works from known developer profiles and a risk policy.
For example, current Apple dev profiles split:
Xcode DerivedDataasSafe;Xcode ArchivesasCaution;CoreSimulator DataasCaution;iOS DeviceSupportasCaution;SwiftPM CacheasSafe.
That is the opposite of cleanup chaos. It is an ecosystem-aware workflow that treats generated caches differently from retained artifacts and simulator state.
Where StorageRadar fits
That changes the practical workflow:
- use
Developer Folderwhen the whole Apple developer area may be bloated; - use
Dev Cleanupwhen you want profile-aware cleanup rather than ordinary file deletion; - keep
Safeprofiles likeDerivedDataseparate fromCautionprofiles likeArchivesand simulator-related storage.
That distinction is the whole value for a developer machine. The product is not only telling you that a folder is large. It is telling you what kind of developer storage it is and what sort of cleanup process it deserves.
Review the developer footprint before you wipe the wrong Xcode folder.
See Dev CleanupWhat not to do
Avoid these common mistakes:
- do not assume
DerivedDatais the only Xcode folder worth checking; - do not wipe
Archives,CoreSimulator, andiOS DeviceSupportas if they had the same risk profile; - do not do a full reset right before a deadline if rebuild time matters;
- do not use largest-file logic alone for developer artifacts that need ecosystem context;
- do not confuse generated build output with project data, deliverables, or retained simulator state.
If Apple dev artifacts are also making System Data look suspiciously large, the companion guide on Mac System Data Too Large is the right next read.
Conclusion
If DerivedData is taking too much space on your Mac, the reassuring part is that it is usually one of the safer Xcode cleanup targets because it is generated output. The less obvious part is that DerivedData is rarely the whole story.
The best cleanup decision comes from reviewing the broader developer footprint, separating safe profiles from caution profiles, and choosing selective or total cleanup based on your current workflow instead of panic.
Frequently asked questions
Can I delete Xcode DerivedData on Mac?
In most cases, yes. DerivedData is generated build and indexing output, so Xcode can rebuild it. The tradeoff is slower builds, reindexing, and heavier simulator or preview startup right after cleanup.
Why does Xcode DerivedData get so large?
It grows because Xcode accumulates build products, indexes, intermediates, previews, and project-specific generated output across multiple projects, branches, SDKs, and simulator combinations.
What else near DerivedData usually gets big?
Common neighboring Xcode storage consumers include Archives, CoreSimulator data, iOS DeviceSupport, and sometimes package-related caches. If DerivedData cleanup barely changes free space, those are the next places to review.
Should I delete all DerivedData or only some projects?
It depends on your workflow. If only a few old projects are stale, selective cleanup is often better because it preserves rebuild speed for active work. A full wipe makes more sense when the entire folder is bloated or corrupted.
How is Dev Cleanup different from ordinary file cleanup?
Dev Cleanup uses known ecosystem profiles, risk labels, Dry Run, and Guided Preflight for higher-risk paths. Ordinary file cleanup only tells you that files are large; it does not add developer-specific context or workflow checks.
Is DerivedData the same as Archives or Simulator data?
No. DerivedData is generally generated build output and is safer to remove. Archives, CoreSimulator data, and iOS DeviceSupport have a different risk profile because they may preserve deliverables, device support assets, or simulator state you still need.