flutter如何配置生产测试环境
在Flutter项目中,如何区分并配置生产环境和测试环境?比如不同的API地址、应用图标或环境变量等。目前用–dart-define手动切换比较麻烦,有没有更优雅的方案?最好能自动打包时区分环境,求具体配置方法和最佳实践。
2 回复
在Flutter中配置生产测试环境,可在flutter run时添加--release参数。也可在android/app/build.gradle和ios/Runner.xcscheme中分别配置构建变体,使用不同环境变量或配置文件区分环境。
更多关于flutter如何配置生产测试环境的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中配置生产/测试环境,可以通过以下方法实现:
1. 使用编译变量(推荐)
步骤1:在 pubspec.yaml 添加环境配置
dependencies:
flutter:
sdk: flutter
flutter_config: ^2.0.0
步骤2:创建环境配置文件
.env(生产环境)
API_BASE_URL=https://api.production.com
APP_NAME=MyApp Production
DEBUG=false
.env.staging(测试环境)
API_BASE_URL=https://api.staging.com
APP_NAME=MyApp Staging
DEBUG=true
步骤3:在代码中使用环境变量
import 'package:flutter_config/flutter_config.dart';
class ApiService {
static String get baseUrl => FlutterConfig.get('API_BASE_URL');
static void initialize() {
print('当前环境: ${FlutterConfig.get('APP_NAME')}');
print('API地址: $baseUrl');
}
}
2. 使用Flutter Flavors
步骤1:配置Android
在 android/app/build.gradle:
android {
flavorDimensions "environment"
productFlavors {
production {
dimension "environment"
applicationId "com.yourapp.production"
}
staging {
dimension "environment"
applicationId "com.yourapp.staging"
}
}
}
步骤2:配置iOS 在Xcode中添加不同的scheme:
- Production Scheme
- Staging Scheme
步骤3:创建环境配置类
class EnvironmentConfig {
static const String baseUrl = String.fromEnvironment('BASE_URL');
static const bool isProduction = bool.fromEnvironment('IS_PRODUCTION');
}
// 运行命令时添加参数
// flutter run --dart-define=BASE_URL=https://api.production.com --dart-define=IS_PRODUCTION=true
3. 简单配置方式
class AppConfig {
static bool get isProduction => const bool.fromEnvironment('dart.vm.product');
static String get apiBaseUrl {
if (isProduction) {
return 'https://api.production.com';
} else {
return 'https://api.staging.com';
}
}
}
使用建议:
- 开发环境:使用本地调试配置
- 测试环境:配置独立的API和数据库
- 生产环境:使用正式服务器和优化配置
选择适合项目规模的方法,小型项目推荐第一种,大型项目推荐使用Flavors。

