Flutter项目可在Android模拟器运行,iOS模拟器启动失败求助
问题现象
MacBook上用VSCode运行Flutter项目,Android模拟器可正常启动,但iOS模拟器启动失败,核心报错为Xcode缓存文件缺失/无法访问,例如:
no such file or directory: '/Users/sm-sayedi/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation'
stat cache file '/Users/sm-sayedi/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/iphonesimulator18.2-22C146-07b28473f605e47e75261259d3ef3b5a.sdkstatcache' not found
无法重命名临时文件到目标路径,以及后续的UIKit/Flutter模块构建失败
解决方案
按以下步骤依次操作:
清理Xcode全局缓存
关闭Xcode和VSCode,打开终端执行:rm -rf ~/Library/Developer/Xcode/DerivedData或者通过Xcode图形界面操作:打开Xcode → 顶部菜单
Xcode→Settings→Locations→ 点击DerivedData右侧的文件夹图标,删除整个DerivedData目录。清理Flutter项目本地构建缓存
在项目根目录打开终端,执行:flutter clean flutter pub get重新初始化iOS依赖
进入项目的ios子目录,执行pod安装:cd ios pod install注:Flutter 3.10及以上版本可通过
flutter pub get自动处理pod,但手动执行更稳妥重启模拟器与开发工具
关闭当前iOS模拟器,打开Simulator.app→ 顶部菜单Hardware→Restart;重新打开VSCode后再次运行项目。
原理说明
这类报错大多是Xcode构建过程中生成的临时缓存文件(DerivedData)损坏、缺失或权限异常导致的,清理后Xcode会重新生成完整的缓存文件,解决模块依赖、文件路径等问题。
内容的提问来源于stack exchange,提问作者sm-sayedi

