Demo app for add multiple Product Flavors
Product flavor is a variant of your app. It is very useful when you want to create multiple versions of your app.
Open up your build.gradle
file in the app module and add your flavors inside the android section.
The below example has 3 product flavors added with each having its own applicationId
, signingConfig
flavorDimensions 'flavors'
productFlavors {
flavor1 {
dimension 'flavors'
applicationId 'com.example.productflavours1'
versionCode 1
versionName '1.0.0'
signingConfig signingConfigs.signKey1Config//specify sign key here
resValue "string", "resvalue1", "valueFromGradle1"//create resource value from here.
buildConfigField 'int', FIELD_NAME_BUILD_CONFIG_FIELD, "1"//create build config field
}
flavor2 {
dimension 'flavors'
applicationId 'com.example.productflavours2'
versionCode 1
versionName '1.0.0'
signingConfig signingConfigs.signKey2Config//specify sign key here
}
flavor3 {
dimension 'flavors'
applicationId 'com.example.productflavours3'
versionCode 1
versionName '1.0.0'
signingConfig signingConfigs.debug//specify sign key here.
}
}
configure signingConfig
signingConfigs {
//define multiple sign keys here
signKey1Config {
storeFile file('your_key_1.jks')
keyAlias 'your_key_1'
keyPassword 'your_key_1_pswd'
storePassword 'your_key_1_pswd'
}
signKey2Config {
storeFile file('your_key_2.jks')
keyAlias 'your_key_2'
keyPassword 'your_key_2_pswd'
storePassword 'your_key_2_pswd'
}
}
Select Build > Select Build Variant
in the menu bar, and you will see the different Build Variants auto-generated when you added the Product flavors.
Your main folder is the one that contains all the common and shared code between flavors, you can create flavor specific code and files by creating different source set for each flavor MyProject/app/src/main
You can check direct with flavor and your config name in everwhere, BuildConfig has already BuildType
if(BuildConfig.FLAVOR == "release"){// TODO}
else if(BuildConfig.FLAVOR == "staging"){ //TODO }
else if(BuildConfig.FLAVOR == "debug"){ //TODO }
To build apk
or appbundle
for each flavor you can select from this popup