iOS原生项目集成Flutter模块提示No such module 'FlutterPluginRegistrant'如何解决
iOS集成Flutter模块
No such module 'FlutterPluginRegistrant' 解决方案 前置检查
- 确认执行完
pod install后,打开的是项目的.xcworkspace文件,而非原始的.xcodeproj文件,后者无法识别Pod引入的依赖库。
针对官方自动集成(使用podhelper.rb)场景
- 首先在你的Flutter模块根目录执行以下命令,重新生成 Flutter 依赖产物:
flutter clean flutter pub get flutter build ios --debug # 如果编译Release环境则替换为 --release - 检查原生项目的Podfile配置是否正确,必须引入podhelper.rb且开启
use_frameworks!,示例配置如下:# 替换为你的Flutter模块相对/绝对路径 flutter_module_path = '../flutter_demo_module' load File.join(flutter_module_path, '.ios', 'Flutter', 'podhelper.rb') target '你的原生AppTarget名' do use_frameworks! # 必须开启,否则无法识别Swift模块 install_all_flutter_pods(flutter_module_path) end - 配置无误后,删除原生项目下的
Podfile.lock和Pods目录,重新执行Pod安装:pod install --repo-update - 检查Xcode
Build Settings中的配置:Framework Search Paths需包含Flutter模块下.ios/Flutter对应的编译环境目录Excluded Architectures配置和Flutter模块保持一致,避免架构冲突导致产物无法识别
针对手动打包Flutter Framework集成场景
- 确认你打包导出的Flutter产物中包含
FlutterPluginRegistrant.framework - 将该framework拖入原生项目后,需在
Build Phases->Embed Frameworks中添加该framework,设置为Embed & Sign
通用清理方案
如果以上配置都确认无误仍报错,按以下顺序操作后重试:
- 关闭Xcode
- 执行
rm -rf ~/Library/Developer/Xcode/DerivedData清理Xcode缓存 - 重新打开
.xcworkspace编译
内容的提问来源于stack exchange,提问作者user3305074
相关产品推荐
相关产品推荐

