Generate configuration constants for different environments from a json file.
- Create a
config.json
file within thetool
directory which contains the keys for a particular variant (check out the Example section for more) - Execute
flutter packages pub run build_runner build --define "dynamic_config_generator|config_builder=variant=$variant"
. The value of the variant would bedebug
orrelease
for the example below.
You can supply $variant via an environment variable in your CI setup.
- This will create
build_config.g.dart
in yourlib
folder - Import this file in the relevant classes and use the generated
BuildConfig
constants.
{
"debug": {
"isRelease": false,
"apiKey": "apiKeyDebug"
},
"release": {
"isRelease": true,
"apiKey": "apiKeyRelease"
}
}
will generate the file build_config.g.dart
with the following content if you build for the release variant.
abstract class BuildConfig {
static const isRelease = 'true';
static const apiKey = 'apiKeyRelease';
}