如何从原生端(iOS/Android)启动Flutter Module的Dev/Prod环境?
修改Schema的构建脚本
打开Xcode,选中目标Schema(比如Dev),进入Edit Scheme->Build->Pre-actions,找到Flutter的Run Script,将原命令修改为:"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build --flavor dev对应Prod Schema则把
--flavor dev替换为--flavor prod。关联Build Configuration与Flavor
在Xcode的项目设置中,为每个Schema配置对应的Build Configuration(比如Dev Schema使用Dev配置,Prod Schema使用Prod配置),并在对应Configuration的Build Settings里添加FLUTTER_FLAVOR环境变量,值为dev或prod。清理缓存后重新构建
执行Command+Shift+K清理Xcode构建缓存,同时删除Flutter Module根目录下的build文件夹,再重新启动对应Schema。
配置原生项目Flavors
在app模块的build.gradle中添加Flavor配置,与Flutter Module的环境对应:android { flavorDimensions "environment" productFlavors { dev { dimension "environment" applicationIdSuffix ".dev" } prod { dimension "environment" } } }依赖对应Flavor的Flutter库
在app模块的build.gradle中,根据Flavor引入对应的Flutter构建产物:dependencies { devImplementation project(path: ':flutter', configuration: 'devDebug') prodImplementation project(path: ':flutter', configuration: 'prodDebug') // Release版本替换为devRelease/prodRelease }选择对应Build Variant启动
在Android Studio的Build Variants面板中,选择目标环境的Variant(比如devDebug或prodRelease),然后运行项目即可加载对应Flutter环境。
- 确保Flutter Module的
android/app/build.gradle中也配置了与原生一致的Flavors,保证构建时生成对应环境的产物。 - 切换环境前,务必清理Flutter的
build目录和原生项目的构建缓存,避免旧环境产物残留影响。
内容的提问来源于stack exchange,提问作者rv7284

