拥有20个Flavor时如何加速Flutter Clean操作?
Flutter多Flavor场景下优化
flutter clean耗时的方案 针对20个Flavor执行flutter clean耗时超10分钟的问题,结合你的M1 MacBook Pro和Flutter 3.0.5/3.3.3环境,提供以下优化方案:
1. 手动拆分clean流程,跳过逐个Flavor的iOS清理
Flutter默认的flutter clean会遍历所有iOS Scheme执行xcodebuild clean,这是耗时的核心原因。可以手动拆分步骤:
- 清理Flutter核心构建产物:直接删除项目根目录的
build/文件夹,或执行flutter clean --android(仅清理Android侧,iOS手动处理) - 清理iOS侧所有产物:执行一次全局的xcodebuild clean,无需逐个Scheme处理:
该命令会一次性清理所有Scheme的iOS构建缓存,比逐个执行快数倍。/usr/bin/arch -arm64e xcrun xcodebuild -workspace ios/Runner.xcworkspace clean
2. 自定义clean脚本替代默认命令
编写一个shell脚本,只执行必要的清理操作,避免Flutter的冗余流程:
创建clean.sh文件,内容如下:
#!/bin/bash # 清理Flutter全局build目录 rm -rf build/ # 清理iOS Runner的build目录 rm -rf ios/Runner/build/ # 清理Android侧build目录(按需选择) rm -rf android/app/build/
赋予脚本执行权限:
chmod +x clean.sh
之后直接运行./clean.sh替代flutter clean,全程耗时可压缩到几十秒内。
3. 升级Flutter版本(按需验证兼容性)
Flutter 3.10及以上版本对多Flavor场景的clean流程做了优化,不再遍历所有Scheme执行iOS清理。如果项目兼容性允许,升级到较新版本可直接解决该问题。升级前建议先在测试分支验证项目构建是否正常。
4. 优化Xcode缓存管理
- 定期清理Xcode的DerivedData缓存:执行
rm -rf ~/Library/Developer/Xcode/DerivedData(注意:这会清理所有Xcode项目的缓存,若仅需清理当前项目,可在Xcode中选择Product > Clean Build Folder) - 在Xcode的
File > Project Settings中,将DerivedData路径设置到SSD或更快的存储位置,提升缓存清理和构建速度。
内容的提问来源于stack exchange,提问作者Eng
相关产品推荐
相关产品推荐

