Xcode
Xcode's leftovers, one project at a time
DerivedData, archives and device support grow with every project you build and every device you plug in. DevSweeper lists them by project and version, and rates each by what deleting it would cost the work you are doing now.
Free to scan. Seven days of cleaning free, no card. macOS 26 or later.

DerivedData
Every project you build gets a folder in ~/Library/Developer/Xcode/DerivedData. DevSweeper reads each folder's info.plist to name it after its workspace and to learn when Xcode last opened it, so you see Aurora.xcworkspace, not Aurora-dkxqzs….
- Project no longer exists. The workspace was deleted or moved: rated Safe now, and Xcode doesn't need to be quit to clean it.
- Older copy. When several folders belong to the same workspace, all but the newest are marked.
- Built recently. A project Xcode built within your staleness window (30 days unless you change it) counts as active, and its folder is rated higher.
- Shared caches.
ModuleCache.noindex,SymbolCache.noindex,SDKExplicitPrecompiledModulesandCompilationCache.noindexare their own rows. Every project shares them, and the next build rebuilds them.
Deleting a project's DerivedData is safe in the sense that Xcode recreates it, and costly in the sense that the next build of that project is a full one. That cost is what the rating is about.
Archives
Archives in ~/Library/Developer/Xcode/Archives older than your staleness window are listed by app name, version and build. Each one holds the dSYMs that symbolicate crash reports for that build, so the cleanup preview reminds you to check they reached your crash reporter first.
Device support
Connecting a device makes Xcode copy its OS symbols into iOS DeviceSupport, and the same happens for watchOS, tvOS, visionOS and macOS. DevSweeper lists older builds of a version you have a newer build of, and older major versions you haven't used within the window. Xcode copies them again the next time that device connects.
Xcode's own cache
~/Library/Caches/com.apple.dt.Xcode is one row. Like DerivedData, it is only cleaned while Xcode is not running.
How it is cleaned
Every Xcode item goes to the Trash after a preview of the exact paths. DevSweeper checks again at the moment of deletion that each path is inside an allowed Xcode folder and that Xcode has quit.