Flutter执行pod install后Xcode报所有模块No module found错误如何解决
Flutter iOS 执行pod install后仍报「module 'xxx' not found」修复方案(模拟器运行场景)
前置校验(先排查基础错误)
- 打开iOS项目时必须选择
ios/Runner.xcworkspace文件,禁止打开Runner.xcodeproj,后者不会加载Pods依赖,必然报模块缺失错误 - 确认
flutter doctor运行无红色报错,Xcode、CocoaPods版本和当前Flutter稳定版适配,无版本冲突提示
全量缓存清理(解决90%缓存残留导致的依赖不关联问题)
先完全退出Xcode进程,在项目根目录按顺序执行以下命令:
# 清理Flutter构建缓存 flutter clean flutter pub get # 进入iOS目录清理原生侧缓存 cd ios rm -rf Pods rm -rf Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData/* pod deintegrate pod install cd ..
命令执行完成后,手动双击打开ios/Runner.xcworkspace,不要通过flutter run命令自动唤起Xcode。
Xcode构建配置修正(解决配置不一致导致的模块识别失败)
- 选中Xcode左侧导航栏的Pods项目,在TARGETS列表中逐个选中报错的插件对应的原生target,再选中Runner主target,统一核对以下配置:
- 打开
Build Settings->Architectures->Excluded Architectures,同一构建模式(Debug/Release)下模拟器对应的架构排除规则必须完全一致:M系列芯片Mac如果给Runner加了arm64排除项,所有Pods下的target也要同步加;没加就全不要加,不能出现配置不一致 - 打开
Build Settings->Search Paths->Framework Search Paths和Header Search Paths,确认配置中包含$(inherited)项,Pods相关头文件路径标记为recursive
- 打开
- 选中Runner主target,打开
Build Phases标签,检查[CP] Embed Pods Frameworks、[CP] Check Pods Manifest.lock两个脚本项,勾选Based on dependency analysis选项 - 点击Xcode菜单栏
Product->Clean Build Folder,清理完成后选择目标模拟器,点击运行按钮即可
注意:M系列芯片Mac执行pod相关命令时如果遇到权限报错,不要加sudo执行,优先给终端开启「使用Rosetta打开」权限,重启终端后重新执行全量缓存清理命令,sudo安装的依赖会因权限不匹配出现隐性的模块识别问题。
内容的提问来源于stack exchange,提问作者switchsdm
相关产品推荐
相关产品推荐

