接入Flutter Module的iOS应用构建失败,提示未知FLUTTER_BUILD_MODE
问题解决方案
报错核心原因:Flutter构建逻辑仅识别Debug/Profile/Release三种构建模式,你的自定义构建配置
Vedur_Dev没有正确映射到Flutter支持的模式,仅在Target的User-Defined Settings中设置优先级不足,会被Flutter集成脚本的环境变量覆盖。
- 方案1:在Podfile中添加构建模式映射(推荐,不会被pod install覆盖)
打开原生项目的Podfile,添加如下post_install钩子,根据你的业务需求给自定义配置指定对应Flutter模式(示例中Vedur_Dev对应Debug模式,可按需改为Profile/Release):
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if config.name == 'Vedur_Dev' config.build_settings['FLUTTER_BUILD_MODE'] = 'Debug' end # 有其他自定义配置可以继续加判断分支 # if config.name == '其他自定义配置名' # config.build_settings['FLUTTER_BUILD_MODE'] = 'Release' # end end end end
修改完成后执行以下命令更新Pod配置:pod deintegrate && pod install
- 方案2:在项目xcconfig中添加配置
在你原生项目对应Vedur_Dev构建配置的xcconfig文件中,直接添加一行配置:FLUTTER_BUILD_MODE = Debug
注意不要修改Pods目录下自动生成的xcconfig文件,否则每次执行pod install都会被覆盖。 - 方案3:补全全场景的User-Defined Settings
确认你添加的FLUTTER_BUILD_MODE配置同时满足以下条件:- 配置在Target级别而非Project级别
- 所有构建场景(Run、Test、Profile、Analyze、Archive)对应的构建配置都已经赋值
- 配置生效验证
执行完上述操作后,先清理Xcode缓存:- 按下
Command + Shift + K清理项目构建产物 - 手动删除
~/Library/Developer/Xcode/DerivedData目录下对应你的项目的缓存文件夹 - 重新打开Xcode执行构建即可
- 按下
内容的提问来源于stack exchange,提问作者Lukas Luke Stateczny
相关产品推荐
相关产品推荐

