Xcode的DerivedData文件夹长期未清理会导致Mac硬盘“其他”类目异常庞大,可通过Finder、终端命令、Xcode内置功能、路径设置优化及自动化脚本五种方法安全清理。

如果您在Mac上使用Xcode开发iOS或macOS应用,发现硬盘空间被大量占用,且Finder中显示“其他”类目异常庞大,则很可能是Xcode的DerivedData文件夹长期未清理所致。该文件夹存储了所有项目的编译中间产物、索引、调试符号和模块缓存,随项目迭代和多设备/模拟器构建持续膨胀,单个文件夹可达数十GB。以下是多种安全、可重复执行的清理方法:
一、通过Finder图形界面彻底删除DerivedData
此方法最直观,适用于不熟悉命令行的开发者。DerivedData文件夹位于用户资源库的隐藏路径下,需通过前往文件夹功能定位,删除后Xcode会在下次构建时自动重建所需内容,不影响源码与工程配置。
1、点击桌面左上角苹果菜单,选择“访达”(Finder)。
2、在顶部菜单栏点击“前往”→“前往文件夹…”(或直接按快捷键Command + Shift + G)。
3、在弹出窗口中粘贴路径:~/Library/Developer/Xcode/DerivedData,然后点击“前往”。
4、选中整个DerivedData文件夹,按Command + Delete将其移入废纸篓。
5、右键点击废纸篓图标,选择“清空废纸篓”以释放实际磁盘空间。
二、使用终端命令一键清空DerivedData
此方法效率高、可脚本化,适合需要批量操作或集成进日常维护流程的开发者。命令直接递归删除目标目录,无需手动导航,且可配合alias快速调用。
1、打开“终端”应用(可在“应用程序→实用工具”中找到)。
2、输入以下命令并回车执行:rm -rf ~/Library/Developer/Xcode/DerivedData。
3、如需确认是否删除成功,可运行:ls -la ~/Library/Developer/Xcode/ | grep DerivedData,返回空结果即表示已清除。
三、在Xcode内部触发自动清理
Xcode内置了原生清理机制,能精准识别当前打开项目的DerivedData位置并清除其专属子目录,避免误删其他项目缓存,特别适合仅需清理当前工作项目的情况,且不依赖外部工具。
1、确保Xcode已启动,并打开您要清理的项目。
2、在顶部菜单栏点击“Xcode”→“设置…”(Preferences)。
3、切换到“位置”(Locations)标签页。
4、在“Derived Data”右侧点击箭头图标,打开对应文件夹所在位置。
5、关闭Xcode,回到该文件夹,删除其中与当前项目名称匹配的子文件夹(通常含项目名+随机哈希串)。
四、设置Xcode自动管理DerivedData路径
默认情况下,Xcode将所有项目的DerivedData集中存放在同一目录,导致难以区分与筛选。将其设为“相对项目”模式后,每个项目会在自身目录下生成独立的DerivedData子文件夹,便于按需清理且天然隔离,长期可显著降低误删与空间失控风险。
1、打开Xcode,进入“Xcode”→“设置…”(Preferences)。
2、切换至“位置”(Locations)标签页。
3、在“Derived Data”下拉菜单中,选择“Relative to Workspace”(若为纯项目则选“Relative to Project”)。
4、关闭当前项目并重新打开,Xcode将自动在项目根目录下创建.xcodeproj/project.xcworkspace同级的DerivedData文件夹。
五、定期自动化清理脚本部署
对于多项目协作或CI/CD环境,手动清理易遗漏。可通过launchd配置定时任务,在每日空闲时段自动执行清理,确保DerivedData体积始终可控,且不干扰开发会话。
1、在终端中执行:nano ~/clean-deriveddata.sh,新建脚本文件。
2、输入以下内容并保存:#!/bin/bash\nrm -rf ~/Library/Developer/Xcode/DerivedData/*。
3、赋予执行权限:chmod +x ~/clean-deriveddata.sh。
4、创建plist文件:nano ~/Library/LaunchAgents/com.user.deriveddata.clean.plist,填入标准launchd配置,设定StartCalendarInterval为每日凌晨2点。

















