xcode占用mac硬盘空间的根源是未清理的缓存文件,包括deriveddata(5–12gb)、90天前archives(3–8gb/个)、旧ios devicesupport(1–3gb/个)、废弃coresimulator设备数据及模块缓存,全部可安全删除且下次编译或运行时自动重建。

Mac硬盘空间被Xcode悄悄吃掉几十GB,打开“关于本机”发现“系统数据”或“其他”类目异常庞大,根源往往就是Xcode在后台持续生成却从不自动清理的缓存文件——这些文件不是项目源码,删完Xcode下次编译或运行时会全自动重建,但不清理就会越堆越多,最终拖慢编译、卡死模拟器、甚至导致磁盘告急。
清空DerivedData编译中间产物
这是Xcode空间占用最大的单项,包含索引、模块缓存、符号表、构建输出等,一个大型项目缓存可达5–12GB。它和你的项目源码完全分离,删完重启Xcode再编译一次就全回来了。
第一步:关闭Xcode(【必须执行,否则部分文件被进程锁定无法删除】)。
第二步:打开访达 → 按Shift + Command + G → 粘贴路径:~/Library/Developer/Xcode/DerivedData → 回车进入。
第三步:点击窗口右上角“显示”→“为列表视图排序”→点“大小”列,快速识别体积最大的旧项目缓存;按住Command键多选确认不再维护的子文件夹(比如已废弃的原型、练习工程、分支测试缓存),或直接全选后按空格预览确认体积。
第四步:将选中内容直接拖入废纸篓 → 右键废纸篓 → “清空废纸篓”。【不执行这步,磁盘空间不会真正释放】
删掉90天前的Archives归档包
每次Product → Archive生成的.xcarchive包都完整保留dSYM、IPA、构建日志,旧版测试包留着毫无调试价值,却常占3–8GB/个。保留最近3个月内用于TestFlight或App Store Connect的版本即可,其余可安全清除。
方法一(图形界面):打开访达 → Shift + Command + G → 输入~/Library/Developer/Xcode/Archives → 回车。展开年份文件夹(如“2022-07.xcarchive”),按修改日期倒序排列 → 勾选超过90天未打开、且未上传App Store Connect或TestFlight的归档 → 拖入废纸篓并清空。
方法二(终端一键):打开终端 → 执行命令:find ~/Library/Developer/Xcode/Archives -name "*.xcarchive" -mtime +90 -delete。这行命令只删90天前的归档,跳过近期版本,安全可控。
卸载不用的iOS DeviceSupport文件
你连过多少台真机,Xcode就默默下过多少套系统支持包。iOS 14.0、15.2、16.1这些旧包现在根本用不上,每个都占1–3GB。
打开访达 → Shift + Command + G → 输入~/Library/Developer/Xcode/iOS DeviceSupport → 回车。
查看各子文件夹名,识别已淘汰的系统版本(比如你主力设备是iPhone 15跑iOS 17.6,那“14.4 (18D52)”、“15.0 (19A339)”就可删)。
【务必核对当前主力设备系统版本,误删正在调试的版本会导致真机无法部署】
选中目标文件夹 → 拖入废纸篓 → 清空。
清理CoreSimulator废弃设备数据
每个模拟器实例运行后都会产生完整的“设备数据”,包括安装的应用、用户偏好、日志、临时文件等,长期闲置的模拟器设备文件夹可能已达数GB。
打开访达 → Shift + Command + G → 输入~/Library/Developer/CoreSimulator/Devices → 回车。
按修改日期排序,找出近3个月未使用的设备文件夹(文件夹名是UUID,但右侧“修改日期”列清晰可见)。
选中这些文件夹 → 拖入废纸篓 → 清空。
这一步操作起来很简单,直接把文件夹拖进去就行。
清除Xcode模块缓存与索引数据库
Xcode为Swift和Objective-C项目维护的模块接口缓存(Module Cache)及源代码索引(Index Database)可能损坏或异常膨胀,导致代码补全卡顿、跳转失效,且不随DerivedData清理而清除。
退出Xcode后,在终端中依次执行以下命令:
rm -rf ~/Library/Caches/com.apple.dt.Xcode
rm -rf ~/Library/Developer/Xcode/iOS Device Logs
rm -rf ~/Library/Developer/Xcode/Products
执行完毕后重启Xcode,首次打开项目时将重新生成必要缓存。











