Flutter flavors如何配置
我在使用Flutter开发应用时需要配置不同的环境变量,比如开发环境和生产环境的API地址不同。看到官方文档提到可以用flavors实现,但不太清楚具体该怎么配置?能否详细说明如何在Flutter项目中设置flavors,以及如何在代码中区分不同环境?
2 回复
Flutter flavors可通过配置android/app/build.gradle和ios/Podfile实现。在android中定义productFlavors,在ios中设置scheme和target。使用--flavor参数运行不同环境,如flutter run --flavor dev。
更多关于Flutter flavors如何配置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter flavors 用于为不同环境(如开发、测试、生产)配置独立的构建版本。以下是配置步骤:
1. Android 配置
android/app/build.gradle:
android {
flavorDimensions "environment"
productFlavors {
dev {
dimension "environment"
applicationIdSuffix ".dev"
resValue "string", "app_name", "App Dev"
}
prod {
dimension "environment"
resValue "string", "app_name", "App Prod"
}
}
}
2. iOS 配置
ios/Runner.xcworkspace 中:
- 在 Xcode 中复制 Runner Scheme,重命名为
dev/prod - 在 Build Settings 中为每个 Scheme 设置不同的
PRODUCT_BUNDLE_IDENTIFIER(如:com.example.dev)
3. Flutter 配置
lib/main.dart:
void main() {
String environment = const String.fromEnvironment('ENVIRONMENT', defaultValue: 'dev');
runApp(MyApp(environment: environment));
}
4. 运行命令
# Android
flutter run --flavor dev -t lib/main_dev.dart
flutter build apk --flavor dev -t lib/main_dev.dart
# iOS
flutter run --flavor dev -t lib/main_dev.dart
flutter build ipa --flavor dev -t lib/main_dev.dart
5. 环境配置文件
创建多个入口文件(如 main_dev.dart、main_prod.dart),通过 --target 指定不同配置:
// main_dev.dart
void main() {
setupEnvironment(Environment.dev);
runApp(MyApp());
}
关键点:
- Android:通过
build.gradle定义 flavors - iOS:需手动配置 Xcode Schemes
- Flutter:使用编译变量或不同入口文件区分环境
- 可配合
.env文件管理不同环境的 API 地址等参数
通过 flavors 可轻松管理多环境配置,避免手动修改代码。

