Loading...
Loading...
Compare original and translation side by side
devstagingprodmain.dart--dart-define-from-fileflutter run --flavor dev --dart-define-from-file=config/dev.json
flutter run --flavor staging --dart-define-from-file=config/staging.json
flutter run --flavor prod --dart-define-from-file=config/prod.jsonmain_dev.dartmain_staging.dartmain_prod.dartdevstagingprodmain.dart--dart-define-from-fileflutter run --flavor dev --dart-define-from-file=config/dev.json
flutter run --flavor staging --dart-define-from-file=config/staging.json
flutter run --flavor prod --dart-define-from-file=config/prod.jsonmain_dev.dartmain_staging.dartmain_prod.dartconfig/config/
├── dev.json
├── staging.json
└── prod.jsonconfig/dev.json{
"FLAVOR": "dev",
"BASE_URL": "https://api-dev.example.com",
"APP_NAME": "MyApp Dev",
"ENABLE_LOGGING": "true",
"ENABLE_CRASHLYTICS": "false"
}flutter_secure_storageconfig/*.json.gitignoreconfig/config/
├── dev.json
├── staging.json
└── prod.jsonconfig/dev.json{
"FLAVOR": "dev",
"BASE_URL": "https://api-dev.example.com",
"APP_NAME": "MyApp Dev",
"ENABLE_LOGGING": "true",
"ENABLE_CRASHLYTICS": "false"
}flutter_secure_storageconfig/*.json.gitignore// lib/main.dart
void main() {
const flavor = String.fromEnvironment('FLAVOR', defaultValue: 'dev');
AppConfig.init(flavor: Flavor.fromString(flavor));
runApp(const App());
}String.fromEnvironment('KEY')bool.fromEnvironment('KEY')Flavorsealed class Flavor { dev, staging, prod }AppConfig// lib/main.dart
void main() {
const flavor = String.fromEnvironment('FLAVOR', defaultValue: 'dev');
AppConfig.init(flavor: Flavor.fromString(flavor));
runApp(const App());
}String.fromEnvironment('KEY')bool.fromEnvironment('KEY')Flavorsealed class Flavor { dev, staging, prod }AppConfigAppConfigbaseUrlenableLoggingenableCrashlyticsappName--dart-define-from-fileflutter_secure_storageAppConfigbaseUrlenableLoggingenableCrashlyticsappName--dart-define-from-fileflutter_secure_storageflavorDimensionsproductFlavorsandroid/app/build.gradleflavorDimensions "environment"
productFlavors {
dev { dimension "environment"; applicationIdSuffix ".dev"; resValue "string", "app_name", "MyApp Dev" }
staging { dimension "environment"; applicationIdSuffix ".staging"; resValue "string", "app_name", "MyApp Staging" }
prod { dimension "environment"; resValue "string", "app_name", "MyApp" }
}android/app/build.gradleflavorDimensionsproductFlavorsflavorDimensions "environment"
productFlavors {
dev { dimension "environment"; applicationIdSuffix ".dev"; resValue "string", "app_name", "MyApp Dev" }
staging { dimension "environment"; applicationIdSuffix ".staging"; resValue "string", "app_name", "MyApp Staging" }
prod { dimension "environment"; resValue "string", "app_name", "MyApp" }
}ios/Runner.xcodeprojios/Runner.xcodeprojgoogle-services.jsonGoogleService-Info.plistflutterfire configure--projectgoogle-services.jsonGoogleService-Info.plistflutterfire configure--projectundefinedundefinedundefinedundefined--flavor--dart-define-from-filemain.dart--flavor--dart-define-from-filemain.dart