执行flutter clean时Xcode workspace清理耗时过长,求排查及解决方法
Flutter Clean 卡在 "Cleaning Xcode workspace..." 的原因与解决办法
可能的原因
- Xcode衍生数据/缓存损坏或体积过大:Flutter clean会调用Xcode的清理工具,一旦DerivedData里的缓存文件有损坏、或者积累的体积过大,遍历和删除这些文件的过程会被大幅拉长。
- Flutter与Xcode版本不兼容:部分版本组合下,Flutter调用Xcode清理的逻辑存在bug,导致进程卡住。
- 磁盘IO性能不足:如果用的是机械硬盘,大文件的删除、清理操作本身就很慢,会直接拖慢整个环节。
- Xcode workspace配置异常:项目的
Runner.xcworkspace文件有配置错误,导致清理工具无法高效解析处理。
针对性解决方法
1. 手动清理Xcode全局衍生数据
直接绕过Flutter的调用,手动删除Xcode的缓存目录,比工具清理更高效:
rm -rf ~/Library/Developer/Xcode/DerivedData
也可以打开目录手动删除:open ~/Library/Developer/Xcode/DerivedData,选中所有文件夹拖到废纸篓清空。
2. 手动清理项目内的iOS构建缓存
跳过Flutter对Xcode的调用,直接清理项目里的iOS相关缓存文件:
# 进入项目根目录后执行以下命令 rm -rf ios/Pods rm -rf ios/.symlinks rm -rf ios/Flutter/Flutter.framework rm -rf ios/Flutter/Flutter.podspec rm -rf ios/build
执行完后再跑flutter clean,此时会重新生成必要文件,大概率不会再卡住。
3. 同步升级Flutter和Xcode版本
- 执行
flutter upgrade升级到最新稳定版Flutter - 打开App Store检查Xcode更新,升级到官方兼容的版本(尽量保持两者都是较新的稳定版)
4. 重建Xcode workspace文件
如果workspace本身有问题,删掉重建即可:
- 删除项目iOS目录下的
Runner.xcworkspace文件 - 进入ios目录执行
pod install重新生成workspace - 回到项目根目录执行
flutter clean测试
5. 检查磁盘状态
- 打开「关于本机」-「存储」,确保磁盘剩余空间不少于10GB,空间不足会拖慢文件操作
- 如果是机械硬盘,建议更换为SSD,能大幅提升磁盘读写速度
内容的提问来源于stack exchange,提问作者J. Stephen Huang
相关产品推荐
相关产品推荐

