flutter如何配置多环境
“在Flutter项目中如何配置多环境?比如开发、测试和生产环境需要使用不同的API地址和配置参数,有没有比较规范的做法?目前是通过手动修改代码来切换环境,感觉很容易出错,求推荐最佳实践方案。”
2 回复
Flutter多环境配置可通过以下方式实现:
- 使用
--dart-define参数传递环境变量; - 创建不同环境的配置文件(如
config_dev.dart、config_prod.dart); - 使用
flutter_config插件管理环境变量; - 结合Flavor和构建变体区分环境。
更多关于flutter如何配置多环境的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中配置多环境可以通过以下几种方式实现:
1. 使用 --dart-define 参数(推荐)
配置方法
// 在 main.dart 中
void main() {
const String environment = String.fromEnvironment('ENVIRONMENT');
const String apiUrl = String.fromEnvironment('API_URL');
runApp(MyApp(environment: environment, apiUrl: apiUrl));
}
运行命令
# 开发环境
flutter run --dart-define=ENVIRONMENT=dev --dart-define=API_URL=https://dev.api.com
# 生产环境
flutter run --dart-define=ENVIRONMENT=prod --dart-define=API_URL=https://api.com
# 构建时同样适用
flutter build apk --dart-define=ENVIRONMENT=prod --dart-define=API_URL=https://api.com
2. 使用 flutter_config 包
安装
dependencies:
flutter_config: ^2.0.0
配置
创建 .env 文件:
ENVIRONMENT=dev
API_URL=https://dev.api.com
使用:
import 'package:flutter_config/flutter_config.dart';
String apiUrl = FlutterConfig.get('API_URL');
String environment = FlutterConfig.get('ENVIRONMENT');
3. 创建环境配置类
abstract class Environment {
static const dev = 'dev';
static const prod = 'prod';
}
class AppConfig {
final String environment;
final String apiUrl;
AppConfig({required this.environment, required this.apiUrl});
static AppConfig get current {
const env = String.fromEnvironment('ENVIRONMENT', defaultValue: Environment.dev);
switch (env) {
case Environment.prod:
return AppConfig(
environment: Environment.prod,
apiUrl: 'https://api.com',
);
default:
return AppConfig(
environment: Environment.dev,
apiUrl: 'https://dev.api.com',
);
}
}
}
4. 在 pubspec.yaml 中配置脚本
scripts:
dev: flutter run --dart-define=ENVIRONMENT=dev --dart-define=API_URL=https://dev.api.com
prod: flutter run --dart-define=ENVIRONMENT=prod --dart-define=API_URL=https://api.com
运行:flutter pub run dev
推荐使用第一种方法,因为它不需要额外依赖,且支持所有构建方式。

