Android - change app version name based on flavor
android, android-productflavors, gradle
Solution
As of at least Android Studio 3.1.1 you can do this...
defaultConfig {
versionName "1.0.0"
}
flavorDimensions "dimen1", "dimen2"
productFlavors {
'flavor1' {
dimension "dimen1"
versionNameSuffix "-F1"
}
...
'flavorA' {
dimension "dimen2"
versionNameSuffix "-FA"
}
}
Then for variant `flavor1FlavorA` the `versionName` would be `1.0.0-F1-FA`
https://developer.android.com/studio/build/build-variants#product-flavors
Problem
I want to change the app `versionName` to whatever is defined in the AndroidManifest file for the specific flavor I'm building. So if I'm only building one of the 4 defined flavors I have, like: gradle assembleFlavor1Debug I was expecting `Flavor1` to have the same version name as the one defined for its specific manifest (because of the merging of manifest files), but that's not happening. How can I know, during build time, which specific flavor is being built? Because if I know what flavor is being run, I can extract the respective `versionName` from the manifest and set it on `android.defaultConfig.versionName`, which solves my problem.