flutter如何配置生产测试环境

在Flutter项目中,如何区分并配置生产环境和测试环境?比如不同的API地址、应用图标或环境变量等。目前用–dart-define手动切换比较麻烦,有没有更优雅的方案?最好能自动打包时区分环境,求具体配置方法和最佳实践。

2 回复

在Flutter中配置生产测试环境,可在flutter run时添加--release参数。也可在android/app/build.gradleios/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:配置Androidandroid/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。

回到顶部