I want to upload my application in the Google Play store but before it goes live i want to test it. There is a testing mode in the app and i want the production applicationId to be like
com.company.product
but i want also to have 2 flavours for testing like
com.company.product.alpha
&&
com.company.product.beta
How should my app build.gradle be like?
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.company"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
....
flavorDimensions "version"
productFlavors {
product {
dimension "version"
applicationIdSuffix ".product"
versionCode 1
versionName "1.0"
}
alpha {
dimension "version"
applicationIdSuffix ".product.alpha"
versionCode 1
versionName "1.0"
}
beta {
dimension "version"
applicationIdSuffix ".product.beta"
versionCode 1
versionName "1.0"
}
}
.....Or i suppose to have it like??
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.company.product"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
....
flavorDimensions "version"
productFlavors {
alpha {
dimension "version"
applicationIdSuffix ".alpha"
versionCode 1
versionName "1.0"
}
beta {
dimension "version"
applicationIdSuffix ".beta"
versionCode 1
versionName "1.0"
}
}
You can do something like this:
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.company.product"
minSdkVersion 21
targetSdkVersion 30
flavorDimensions "application"
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
productFlavors {
alpha {
dimension "application"
applicationIdSuffix ".alpha"
versionNameSuffix "-alpha"
buildConfigField "String", "FLAVOR_TYPE", '"alpha"'
}
beta {
dimension "application"
applicationIdSuffix ".beta"
versionNameSuffix "-beta"
buildConfigField "String", "FLAVOR_TYPE", '"beta"'
}
production {
dimension "application"
applicationIdSuffix ""
versionNameSuffix ""
buildConfigField "String", "FLAVOR_TYPE", '"production"'
}
}
Set applicationIdSuffix
and versionNameSuffix
for each flavour and keep empty for production one. In that way you can distribute com.company.product.alpha
and com.company.product.beta
for alpha and beta flavours.