Flutter构建iOS应用报错:No such module 'Flutter'
Flutter构建iOS应用报错:No such module 'Flutter'
嘿,我之前也碰到过几乎一模一样的问题,当时折腾了好一阵才搞定,给你分享几个亲测有效的解决办法,你可以挨个试试:
检查并修复Podfile配置
先打开iOS目录下的Podfile,确认开头的配置有没有正确引入Flutter的依赖,正确的开头应该类似这样:platform :ios, '14.0' # 这里的版本要和你项目支持的最低iOS版本保持一致 use_frameworks! :linkage => :static flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))如果之前的Podfile被误改或者缺失了上面的内容,补全之后执行下面的命令彻底清理并重做依赖:
cd ios pod deintegrate pod install --repo-update这个步骤会彻底移除旧的Pod依赖,重新拉取最新的版本,很多模块找不到的问题都是依赖缓存或者版本不匹配导致的。
重置Xcode的缓存和构建目录
Xcode的缓存有时候会抽风,导致明明有模块却找不到,你可以这么操作:- 先完全关闭Xcode
- 执行命令清理Xcode的DerivedData缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData - 回到Flutter项目根目录,依次执行
flutter clean、flutter pub get,再进入iOS目录执行pod install - 最后用
flutter run启动项目,尽量不要手动打开Xcode项目运行,有时候命令行的关联会更准确。
确认Flutter SDK路径配置正确
要是你最近换过Flutter SDK的位置,或者项目是从其他电脑拷贝过来的,可能会出现路径不匹配的问题:- 先执行
flutter doctor,检查输出里的iOS相关项有没有报错,比如“Xcode - develop for iOS and macOS”那部分是否显示正常 - 如果
flutter doctor提示有问题,按照提示修复(比如安装缺失的组件、同意Xcode许可证) - 也可以手动在Xcode里检查:打开iOS项目,进入Build Settings,搜索
Framework Search Paths,确认里面包含$(inherited)和${FLUTTER_ROOT}/bin/cache/artifacts/engine/ios这两个路径,如果没有就手动添加。
- 先执行
检查多Target的框架引入(如果有)
要是你的iOS项目有多个Target(比如主App和通知扩展),得确认每个Target的General标签下,Frameworks, Libraries, and Embedded Content里都添加了Flutter.framework,并且设置为Embed & Sign。如果没加的话,点击+按钮选择Flutter.framework添加即可。
这些方法我当时试了其中一两个就解决了问题,你可以根据自己的情况来尝试,要是还是不行,不妨看看flutter doctor -v的详细输出,里面可能藏着更具体的错误提示。
内容来源于stack exchange
相关产品推荐
相关产品推荐

