[{"data":1,"prerenderedAt":61},["ShallowReactive",2],{"blog-en-clear-xcode-storage":3},{"meta":4,"html":14,"headings":15,"raw":60},{"title":5,"description":6,"topic":7,"date":8,"author":9,"icons":10},"Xcode Taking Up Tens of Gigabytes? How to Clear DerivedData, Simulators, and Device Support","See where Xcode's storage goes, which DerivedData, simulator runtimes, devices, and device support files you can delete, and what you should keep.","developer-cleanup","2026-10-29","WashBear Team",[11,12,13],"blocks","smartphone","terminal","\u003Cp>After a while of iOS or macOS development, you may notice that System Data, or the Developer category in Storage settings, keeps growing. The culprit is rarely the Xcode app itself. It is the data Xcode keeps generating as you work: build caches for every project, a simulator runtime for every OS version, and device support files for every physical device you have debugged on. That data is spread across several folders. Some of it only costs you a slower next build when deleted; some of it cannot be recovered. This guide explains what each piece is, how to clean it up by hand, and what WashBear can do for you.\u003C\u002Fp>\n\u003Ch2 id=\"where-the-space-goes\">\u003Ca class=\"heading-anchor\" href=\"#where-the-space-goes\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>See where the space goes\u003C\u002Fh2>\n\u003Cp>Most Xcode data lives under \u003Ccode>~\u002FLibrary\u002FDeveloper\u003C\u002Fcode>, while simulator runtimes live in a system-level location. Start with two read-only commands:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\"># Size of each subfolder in the Xcode and simulator folders, smallest first\ndu -h -d 1 ~\u002FLibrary\u002FDeveloper\u002FXcode ~\u002FLibrary\u002FDeveloper\u002FCoreSimulator 2&gt;\u002Fdev\u002Fnull | sort -h\n# Installed simulator runtimes and the space they use\nxcrun simctl runtime list\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The usual heavyweights, relative to \u003Ccode>~\u002FLibrary\u002FDeveloper\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cdiv class=\"table-wrap\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Location\u003C\u002Fth>\u003Cth>Contents\u003C\u002Fth>\u003Cth>After deletion\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>Xcode\u002FDerivedData\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Build products, indexes, and logs for each project\u003C\u002Ftd>\u003Ctd>The next build and indexing pass are slower; rebuilt automatically\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>Xcode\u002FiOS DeviceSupport\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>System symbols for on-device debugging, one copy per OS version\u003C\u002Ftd>\u003Ctd>Prepared again when you connect a device on that version\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>CoreSimulator\u002FDevices\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Each simulator and the apps and data installed in it\u003C\u002Ftd>\u003Ctd>The simulator&#39;s data is gone\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>CoreSimulator\u002FCaches\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Shared caches generated by simulators\u003C\u002Ftd>\u003Ctd>The first simulator launch is slower\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>Xcode\u002FArchives\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Builds you distributed, plus their debug symbols (dSYMs)\u003C\u002Ftd>\u003Ctd>You can no longer export that build or symbolicate its crash logs\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Simulator runtimes are not in this folder, and a single one is often several gigabytes. Use \u003Ccode>xcrun simctl runtime list\u003C\u002Fcode> to see them.\u003C\u002Fp>\n\u003Ch2 id=\"safe-vs-risky\">\u003Ca class=\"heading-anchor\" href=\"#safe-vs-risky\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>What is safe to delete, and what needs a second thought\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Safe to delete\u003C\u002Fstrong>: DerivedData, \u003Ccode>CoreSimulator\u002FCaches\u003C\u002Fcode>, and old device logs and documentation indexes. Xcode generates all of them and simply regenerates them later.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete selectively\u003C\u002Fstrong>: simulator runtimes, device support files, and simulator devices. The question is whether you still need to run or debug on that OS version. If your app supports iOS 17 and later, keep an iOS 17 runtime; device support for a test phone you retired long ago can go.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Do not treat as cache\u003C\u002Fstrong>: \u003Ccode>Archives\u003C\u002Fcode> holds builds you submitted or distributed, along with the dSYMs needed to symbolicate their crash logs. Your project folders, certificates, and provisioning profiles are off-limits too.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"manual-cleanup\">\u003Ca class=\"heading-anchor\" href=\"#manual-cleanup\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Clean up manually\u003C\u002Fh2>\n\u003Cp>Quit Xcode and Simulator first so files are not rewritten while you delete them. The \u003Ccode>rm -rf\u003C\u002Fcode> commands below delete immediately; nothing goes to the Trash.\u003C\u002Fp>\n\u003Ch3 id=\"derived-data\">\u003Ca class=\"heading-anchor\" href=\"#derived-data\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>DerivedData\u003C\u002Fh3>\n\u003Cp>Check \u003Cstrong>Xcode → Settings → Locations\u003C\u002Fstrong> to confirm that Derived Data uses the default location. If it points to a custom folder, use that path instead.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\"># Build cache size per project\ndu -h -d 1 ~\u002FLibrary\u002FDeveloper\u002FXcode\u002FDerivedData | sort -h\n# Delete all build caches; source code, certificates, and archives are untouched\nrm -rf ~\u002FLibrary\u002FDeveloper\u002FXcode\u002FDerivedData\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To clear a single project, delete its \u003Ccode>ProjectName-&lt;random characters&gt;\u003C\u002Fcode> folder. If you only want to fix a misbehaving build, try \u003Cstrong>Product → Clean Build Folder\u003C\u002Fstrong> first; it touches far less.\u003C\u002Fp>\n\u003Ch3 id=\"simulator-devices\">\u003Ca class=\"heading-anchor\" href=\"#simulator-devices\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Simulator devices and SwiftUI previews\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\"># List every simulator and its UDID\nxcrun simctl list devices\n# Delete simulators whose runtime is no longer installed\nxcrun simctl delete unavailable\n# Delete one simulator, including its apps and data\nxcrun simctl delete &lt;UDID&gt;\n# Remove the simulators used by SwiftUI previews; they are recreated on the next preview\nxcrun simctl --set previews delete all\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>delete unavailable\u003C\u002Fcode> only removes devices that have lost their runtime, so it is most useful right after you delete runtimes. You can also delete a single simulator from \u003Cstrong>Window → Devices and Simulators\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3 id=\"simulator-runtimes\">\u003Ca class=\"heading-anchor\" href=\"#simulator-runtimes\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Simulator runtimes\u003C\u002Fh3>\n\u003Cp>The most direct way is \u003Cstrong>Xcode → Settings → Components\u003C\u002Fstrong>: click the info button next to a version you no longer need, then click \u003Cstrong>Delete\u003C\u002Fstrong>. Apple describes this in \u003Ca href=\"https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fxcode\u002Fdownloading-and-installing-additional-xcode-components\" target=\"_blank\" rel=\"noopener\">Downloading and installing additional Xcode components\u003C\u002Fa>. From the command line:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">xcrun simctl runtime list\n# Delete a runtime by the identifier shown in the list\nxcrun simctl runtime delete &lt;identifier&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Simulators for that OS version stop working until you download the runtime again from the same settings page.\u003C\u002Fp>\n\u003Ch3 id=\"device-support\">\u003Ca class=\"heading-anchor\" href=\"#device-support\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Device support files\u003C\u002Fh3>\n\u003Cp>Whenever you debug on a device running an OS version Xcode has not seen before, it saves that version&#39;s symbols in \u003Ccode>iOS DeviceSupport\u003C\u002Fcode> (watchOS, tvOS, and visionOS each have their own folder). A single version can take several gigabytes.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">du -h -d 1 &quot;$HOME\u002FLibrary\u002FDeveloper\u002FXcode\u002FiOS DeviceSupport&quot; | sort -h\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Delete the folders for versions you no longer use. If you connect a device on that version later, Xcode prepares the files again, and the first debug session takes a little longer.\u003C\u002Fp>\n\u003Ch3 id=\"archives\">\u003Ca class=\"heading-anchor\" href=\"#archives\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Archives\u003C\u002Fh3>\n\u003Cp>Manage archives one at a time in the Archives section of \u003Cstrong>Window → Organizer\u003C\u002Fstrong>. Delete a build only when you are sure you will not distribute it again or need to analyze its crash logs.\u003C\u002Fp>\n\u003Ch2 id=\"washbear\">\u003Ca class=\"heading-anchor\" href=\"#washbear\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Clean Xcode data with WashBear\u003C\u002Fh2>\n\u003Cp>Run a \u003Cstrong>Standard Scan\u003C\u002Fstrong> in \u003Ca href=\"\u002Fen\u002Fdocs\u002Fdeep-clean\">Deep Cleanup\u003C\u002Fa>, and Xcode content appears under \u003Cstrong>Xcode data\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Xcode derived data\u003C\u002Fstrong>: the entire DerivedData folder at its default location.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Xcode simulator cache\u003C\u002Fstrong>: CoreSimulator caches and temporary files. Simulator devices, runtimes, and app data are kept.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Xcode documentation and device logs\u003C\u002Fstrong>: documentation indexes and iOS or watchOS device logs older than 14 days.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Xcode DeviceSupport\u003C\u002Fstrong>: listed per OS version, so you can select only the versions you no longer need.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Simulator runtimes\u003C\u002Fstrong>: removed through Xcode&#39;s own \u003Ccode>simctl\u003C\u002Fcode>. Only runtimes the system marks as deletable are listed, and you can select them one by one.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Smart recommendation\u003C\u002Fstrong> never preselects these items, so expand each one, check its locations and size, and select what you want. All of them require Xcode to be closed, and some also require Simulator to be closed. In \u003Cstrong>Confirm cleanup\u003C\u002Fstrong>, use \u003Cstrong>Close running apps (optional)\u003C\u002Fstrong> to let WashBear close them for you; save your work first.\u003C\u002Fp>\n\u003Cp>A few related items live in other categories: \u003Cstrong>Apple device support cache\u003C\u002Fstrong> under \u003Cstrong>Application caches\u003C\u002Fstrong>, \u003Cstrong>Old iPhone and iPad firmware downloads\u003C\u002Fstrong> (firmware files older than seven days) under \u003Cstrong>System caches\u003C\u002Fstrong>, and \u003Cstrong>Swift Package Manager cache\u003C\u002Fstrong> and \u003Cstrong>CocoaPods cache\u003C\u002Fstrong> under \u003Cstrong>User cache files\u003C\u002Fstrong>. For the \u003Ccode>Pods\u003C\u002Fcode> and \u003Ccode>.build\u003C\u002Fcode> folders inside your projects, see \u003Ca href=\"\u002Fen\u002Fblog\u002Fclean-project-build-artifacts\">cleaning build folders in old projects\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cdiv class=\"callout callout-note\">\u003Cp class=\"callout-title\">Note\u003C\u002Fp>\u003Cp>WashBear does not delete Archives, simulator devices, or SwiftUI preview data, and it does not handle DerivedData at a custom location. Use the manual steps above for those. Cleanup deletes files directly instead of moving them to the Trash, and the result is recorded in \u003Ca href=\"\u002Fen\u002Fdocs\u002Fgetting-started#history\">Operation History\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\u003Cp>To see how much space these folders take on your Mac, \u003Ca href=\"\u002Fen\u002Fdownload\">download WashBear\u003C\u002Fa> and run Deep Cleanup; scanning alone never deletes anything. The demo below uses sample data, so its items, sizes, and selections are only illustrative.\u003C\u002Fp>\n\u003C!--demo:deepClean-->\u003Ch2 id=\"checklist\">\u003Ca class=\"heading-anchor\" href=\"#checklist\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Checklist\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Save your work and quit Xcode and Simulator.\u003C\u002Fli>\n\u003Cli>Clear DerivedData and the simulator cache freely.\u003C\u002Fli>\n\u003Cli>Keep runtimes and device support only for OS versions your projects still support.\u003C\u002Fli>\n\u003Cli>After deleting runtimes, run \u003Ccode>xcrun simctl delete unavailable\u003C\u002Fcode> once.\u003C\u002Fli>\n\u003Cli>Delete archives only in Organizer, one at a time.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"faq\">\u003Ca class=\"heading-anchor\" href=\"#faq\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>FAQ\u003C\u002Fh2>\n\u003Ch3 id=\"faq-source-code\">\u003Ca class=\"heading-anchor\" href=\"#faq-source-code\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Does deleting DerivedData affect my source code or Git?\u003C\u002Fh3>\n\u003Cp>No. DerivedData only contains generated files. Your source code, Git history, certificates, and provisioning profiles live elsewhere. The cost is a slower next full build and indexing pass.\u003C\u002Fp>\n\u003Ch3 id=\"faq-grows-back\">\u003Ca class=\"heading-anchor\" href=\"#faq-grows-back\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Why did it grow back so quickly?\u003C\u002Fh3>\n\u003Cp>That is expected. As long as you build projects and use simulators, Xcode regenerates this data. Rather than repeatedly wiping caches you actively use, periodically remove OS versions and old project data you no longer need.\u003C\u002Fp>\n\u003Ch3 id=\"faq-runtime-mistake\">\u003Ca class=\"heading-anchor\" href=\"#faq-runtime-mistake\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>What if I delete a runtime I still need?\u003C\u002Fh3>\n\u003Cp>Download it again in \u003Cstrong>Xcode → Settings → Components\u003C\u002Fstrong>; the only cost is download time. If your whole Mac is short on space, start with \u003Ca href=\"\u002Fen\u002Fblog\u002Fmac-storage-full\">what to do when your Mac storage is full\u003C\u002Fa>.\u003C\u002Fp>\n",[16,20,23,26,30,33,36,39,42,45,48,51,54,57],{"depth":17,"id":18,"text":19},2,"where-the-space-goes","See where the space goes",{"depth":17,"id":21,"text":22},"safe-vs-risky","What is safe to delete, and what needs a second thought",{"depth":17,"id":24,"text":25},"manual-cleanup","Clean up manually",{"depth":27,"id":28,"text":29},3,"derived-data","DerivedData",{"depth":27,"id":31,"text":32},"simulator-devices","Simulator devices and SwiftUI previews",{"depth":27,"id":34,"text":35},"simulator-runtimes","Simulator runtimes",{"depth":27,"id":37,"text":38},"device-support","Device support files",{"depth":27,"id":40,"text":41},"archives","Archives",{"depth":17,"id":43,"text":44},"washbear","Clean Xcode data with WashBear",{"depth":17,"id":46,"text":47},"checklist","Checklist",{"depth":17,"id":49,"text":50},"faq","FAQ",{"depth":27,"id":52,"text":53},"faq-source-code","Does deleting DerivedData affect my source code or Git?",{"depth":27,"id":55,"text":56},"faq-grows-back","Why did it grow back so quickly?",{"depth":27,"id":58,"text":59},"faq-runtime-mistake","What if I delete a runtime I still need?","\nAfter a while of iOS or macOS development, you may notice that System Data, or the Developer category in Storage settings, keeps growing. The culprit is rarely the Xcode app itself. It is the data Xcode keeps generating as you work: build caches for every project, a simulator runtime for every OS version, and device support files for every physical device you have debugged on. That data is spread across several folders. Some of it only costs you a slower next build when deleted; some of it cannot be recovered. This guide explains what each piece is, how to clean it up by hand, and what WashBear can do for you.\n\n## See where the space goes {#where-the-space-goes}\n\nMost Xcode data lives under `~\u002FLibrary\u002FDeveloper`, while simulator runtimes live in a system-level location. Start with two read-only commands:\n\n```bash\n# Size of each subfolder in the Xcode and simulator folders, smallest first\ndu -h -d 1 ~\u002FLibrary\u002FDeveloper\u002FXcode ~\u002FLibrary\u002FDeveloper\u002FCoreSimulator 2>\u002Fdev\u002Fnull | sort -h\n# Installed simulator runtimes and the space they use\nxcrun simctl runtime list\n```\n\nThe usual heavyweights, relative to `~\u002FLibrary\u002FDeveloper`:\n\n| Location | Contents | After deletion |\n| --- | --- | --- |\n| `Xcode\u002FDerivedData` | Build products, indexes, and logs for each project | The next build and indexing pass are slower; rebuilt automatically |\n| `Xcode\u002FiOS DeviceSupport` | System symbols for on-device debugging, one copy per OS version | Prepared again when you connect a device on that version |\n| `CoreSimulator\u002FDevices` | Each simulator and the apps and data installed in it | The simulator's data is gone |\n| `CoreSimulator\u002FCaches` | Shared caches generated by simulators | The first simulator launch is slower |\n| `Xcode\u002FArchives` | Builds you distributed, plus their debug symbols (dSYMs) | You can no longer export that build or symbolicate its crash logs |\n\nSimulator runtimes are not in this folder, and a single one is often several gigabytes. Use `xcrun simctl runtime list` to see them.\n\n## What is safe to delete, and what needs a second thought {#safe-vs-risky}\n\n- **Safe to delete**: DerivedData, `CoreSimulator\u002FCaches`, and old device logs and documentation indexes. Xcode generates all of them and simply regenerates them later.\n- **Delete selectively**: simulator runtimes, device support files, and simulator devices. The question is whether you still need to run or debug on that OS version. If your app supports iOS 17 and later, keep an iOS 17 runtime; device support for a test phone you retired long ago can go.\n- **Do not treat as cache**: `Archives` holds builds you submitted or distributed, along with the dSYMs needed to symbolicate their crash logs. Your project folders, certificates, and provisioning profiles are off-limits too.\n\n## Clean up manually {#manual-cleanup}\n\nQuit Xcode and Simulator first so files are not rewritten while you delete them. The `rm -rf` commands below delete immediately; nothing goes to the Trash.\n\n### DerivedData {#derived-data}\n\nCheck **Xcode → Settings → Locations** to confirm that Derived Data uses the default location. If it points to a custom folder, use that path instead.\n\n```bash\n# Build cache size per project\ndu -h -d 1 ~\u002FLibrary\u002FDeveloper\u002FXcode\u002FDerivedData | sort -h\n# Delete all build caches; source code, certificates, and archives are untouched\nrm -rf ~\u002FLibrary\u002FDeveloper\u002FXcode\u002FDerivedData\n```\n\nTo clear a single project, delete its `ProjectName-\u003Crandom characters>` folder. If you only want to fix a misbehaving build, try **Product → Clean Build Folder** first; it touches far less.\n\n### Simulator devices and SwiftUI previews {#simulator-devices}\n\n```bash\n# List every simulator and its UDID\nxcrun simctl list devices\n# Delete simulators whose runtime is no longer installed\nxcrun simctl delete unavailable\n# Delete one simulator, including its apps and data\nxcrun simctl delete \u003CUDID>\n# Remove the simulators used by SwiftUI previews; they are recreated on the next preview\nxcrun simctl --set previews delete all\n```\n\n`delete unavailable` only removes devices that have lost their runtime, so it is most useful right after you delete runtimes. You can also delete a single simulator from **Window → Devices and Simulators**.\n\n### Simulator runtimes {#simulator-runtimes}\n\nThe most direct way is **Xcode → Settings → Components**: click the info button next to a version you no longer need, then click **Delete**. Apple describes this in [Downloading and installing additional Xcode components](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fxcode\u002Fdownloading-and-installing-additional-xcode-components). From the command line:\n\n```bash\nxcrun simctl runtime list\n# Delete a runtime by the identifier shown in the list\nxcrun simctl runtime delete \u003Cidentifier>\n```\n\nSimulators for that OS version stop working until you download the runtime again from the same settings page.\n\n### Device support files {#device-support}\n\nWhenever you debug on a device running an OS version Xcode has not seen before, it saves that version's symbols in `iOS DeviceSupport` (watchOS, tvOS, and visionOS each have their own folder). A single version can take several gigabytes.\n\n```bash\ndu -h -d 1 \"$HOME\u002FLibrary\u002FDeveloper\u002FXcode\u002FiOS DeviceSupport\" | sort -h\n```\n\nDelete the folders for versions you no longer use. If you connect a device on that version later, Xcode prepares the files again, and the first debug session takes a little longer.\n\n### Archives {#archives}\n\nManage archives one at a time in the Archives section of **Window → Organizer**. Delete a build only when you are sure you will not distribute it again or need to analyze its crash logs.\n\n## Clean Xcode data with WashBear {#washbear}\n\nRun a **Standard Scan** in [Deep Cleanup](\u002Fdocs\u002Fdeep-clean), and Xcode content appears under **Xcode data**:\n\n- **Xcode derived data**: the entire DerivedData folder at its default location.\n- **Xcode simulator cache**: CoreSimulator caches and temporary files. Simulator devices, runtimes, and app data are kept.\n- **Xcode documentation and device logs**: documentation indexes and iOS or watchOS device logs older than 14 days.\n- **Xcode DeviceSupport**: listed per OS version, so you can select only the versions you no longer need.\n- **Simulator runtimes**: removed through Xcode's own `simctl`. Only runtimes the system marks as deletable are listed, and you can select them one by one.\n\n**Smart recommendation** never preselects these items, so expand each one, check its locations and size, and select what you want. All of them require Xcode to be closed, and some also require Simulator to be closed. In **Confirm cleanup**, use **Close running apps (optional)** to let WashBear close them for you; save your work first.\n\nA few related items live in other categories: **Apple device support cache** under **Application caches**, **Old iPhone and iPad firmware downloads** (firmware files older than seven days) under **System caches**, and **Swift Package Manager cache** and **CocoaPods cache** under **User cache files**. For the `Pods` and `.build` folders inside your projects, see [cleaning build folders in old projects](\u002Fblog\u002Fclean-project-build-artifacts).\n\n> [!NOTE]\n> WashBear does not delete Archives, simulator devices, or SwiftUI preview data, and it does not handle DerivedData at a custom location. Use the manual steps above for those. Cleanup deletes files directly instead of moving them to the Trash, and the result is recorded in [Operation History](\u002Fdocs\u002Fgetting-started#history).\n\nTo see how much space these folders take on your Mac, [download WashBear](\u002Fdownload) and run Deep Cleanup; scanning alone never deletes anything. The demo below uses sample data, so its items, sizes, and selections are only illustrative.\n\n::demo deepClean\n\n## Checklist {#checklist}\n\n1. Save your work and quit Xcode and Simulator.\n2. Clear DerivedData and the simulator cache freely.\n3. Keep runtimes and device support only for OS versions your projects still support.\n4. After deleting runtimes, run `xcrun simctl delete unavailable` once.\n5. Delete archives only in Organizer, one at a time.\n\n## FAQ {#faq}\n\n### Does deleting DerivedData affect my source code or Git? {#faq-source-code}\n\nNo. DerivedData only contains generated files. Your source code, Git history, certificates, and provisioning profiles live elsewhere. The cost is a slower next full build and indexing pass.\n\n### Why did it grow back so quickly? {#faq-grows-back}\n\nThat is expected. As long as you build projects and use simulators, Xcode regenerates this data. Rather than repeatedly wiping caches you actively use, periodically remove OS versions and old project data you no longer need.\n\n### What if I delete a runtime I still need? {#faq-runtime-mistake}\n\nDownload it again in **Xcode → Settings → Components**; the only cost is download time. If your whole Mac is short on space, start with [what to do when your Mac storage is full](\u002Fblog\u002Fmac-storage-full).\n",1793258439460]