Short answer: ~/Library/Developer/Xcode/iOS DeviceSupport holds debug symbols Xcode copies from each iPhone or iPad you connect, one folder per iOS version and build. Folders for iOS versions you no longer debug are safe to delete with Xcode closed. If you connect a device on that version again, Xcode copies the symbols back, which takes a few minutes. The same applies to the watchOS, tvOS and visionOS DeviceSupport folders.
What DeviceSupport contains
To debug an app on a real device, Xcode needs the system libraries' symbols for the exact operating system build on that device. The first time you connect a device running a new build, Xcode shows a “Preparing device for development” or “Copying shared cache symbols” message and copies those symbols to your Mac. Each build gets its own folder, named after the device model, OS version and build number.
A single folder is often 3 to 6 GB. Developers who test on several devices, or who keep their phone on beta releases, collect a new folder for every build. Over a year this can reach 20 to 50 GB, all counted as System Data in Storage settings because it lives inside your Library folder.
The folders are a local copy of something Apple's devices can provide again. They are not part of your projects, your source code or your archives.
Check how big it is
The read-only command below lists each DeviceSupport folder for every platform with its size. It changes nothing.
du -sh ~/Library/Developer/Xcode/*DeviceSupport/* 2>/dev/null | sort -h
To see the total for each platform:
du -sh ~/Library/Developer/Xcode/*DeviceSupport 2>/dev/null
Folder names look like iPhone17,1 26.1 (23B85). The part in parentheses is the build. If you see many builds of the same major version, most of them are from betas or point releases you have moved past.
Is it safe to delete?
Yes, for versions you no longer need. Deleting a folder does not affect your devices, your projects or your signing setup. The cost is time: the next time you connect a device running that exact build, Xcode copies the symbols again before you can debug. On a fast connection that takes a few minutes; over a slow cable or wireless debugging it can take longer.
| Folder | Decision | Why |
|---|---|---|
| Builds your current devices run | Keep | You need them to debug today; removing them only causes a re-copy. |
| Older builds of the same major version | Remove | Your devices have moved on. |
| Beta builds you have upgraded past | Remove | A beta build is never needed again. |
| Versions you support but rarely debug | Your call | Keep if you debug crashes on that version often. |
| Devices you no longer own | Remove | No device will need them. |
Delete old DeviceSupport folders
- Quit Xcode and disconnect devices, so nothing is copying symbols while you work.
- Open the folder in Finder: Go → Go to Folder, then type
~/Library/Developer/Xcode/iOS DeviceSupport. - Check your devices' versions in Settings → General → About on each device, so you know which builds to keep.
- Select the older folders and move them to the Trash. Repeat for the watchOS, tvOS and visionOS DeviceSupport folders if they exist.
- Open Xcode, connect a device, and confirm you can run a build on it.
- Empty the Trash to get the space back.
You can also remove a folder from Terminal by moving it to the Trash. Replace the folder name with one from your own list:
mv ~/Library/Developer/Xcode/iOS\ DeviceSupport/"iPhone17,1 26.0 (23A341)" ~/.Trash/
Other Xcode folders that grow
DeviceSupport is one of several Xcode locations that add up. Each has a different value:
- DerivedData holds build products and indexes. Safe to clear; the next build is slower. See the DerivedData guide.
- Archives are your release builds. Keep the ones you might need to re-upload or symbolicate crash reports for.
- Simulator devices and runtimes hold test apps and full simulator systems. See the simulator guide.
- UserData/Previews holds SwiftUI preview builds. Safe to clear with Xcode closed; previews rebuild.
Why the folder keeps growing
Three habits make DeviceSupport grow faster than you expect. First, every point release and every beta is a separate build, so a phone that moves from 26.0 to 26.0.1 to 26.1 leaves three folders behind. Second, each type of device can have its own folder for the same version, so a team that tests on an iPhone, an iPad and a Watch collects symbols for each. Third, nothing removes the old folders automatically: Xcode adds what it needs and leaves the rest in place.
A simple routine keeps it under control. After you update your test devices to a new release, wait until you have debugged on it once, then remove the folders for the builds you left behind. If you work on a shared Mac or a build machine that never connects devices, the folder should be nearly empty, and anything in it can go.
If you only debug in the simulator, you may not need DeviceSupport at all. Simulators use runtimes that Xcode manages separately, and they never read these folders. On a laptop with a small disk, that makes DeviceSupport one of the easiest places to recover space before a big Xcode or macOS update.
Example: forty gigabytes of betas
A developer who keeps a test iPhone on every iOS beta found 41 GB in iOS DeviceSupport: fourteen folders, most from beta builds of the last two major versions. The phones were now on two current builds. Keeping those two folders and moving the other twelve to the Trash returned about 35 GB. The next connection of each device was instant, because the folders it needed were still there.
Questions about iOS DeviceSupport
Will deleting DeviceSupport break Xcode?
No. Xcode recreates the folder and copies symbols when a device needs them.
Why does Xcode say “Copying shared cache symbols” every time?
Usually because the device is on a new build, or because the folder for its build was removed. Once copied, the message does not appear again for that build.
Can I move DeviceSupport to another drive?
It is simpler and safer to remove old builds. Moving the folder with a symbolic link can confuse Xcode when the drive is not connected.
Does this affect crash symbolication?
Symbolicating a crash from a device needs the matching system symbols. If you often symbolicate crashes from older iOS versions on your Mac, keep those builds.
How do I see which build a connected device runs?
In Xcode, open Window → Devices and Simulators and select the device. The panel shows its model and the exact OS version and build, which matches the part in parentheses of the folder name you want to keep.
Does a build server or CI Mac need DeviceSupport?
Only if it runs tests on physical devices. A machine that builds and tests in the simulator never uses these folders, so they can be cleared there without any effect on builds.
Is DeviceSupport part of System Data?
Yes, in Storage settings it is counted inside System Data. See the System Data guide for the other common contributors.
Handled by MacMonitor
MacMonitor's System Data scan lists device support files under Safe to clean with their total size. It waits until Xcode is closed (“Quit Xcode to include”) and moves the folders to the Trash, so Put Back restores them. Build Caches covers DerivedData, archives and simulators separately, each with its own rules.