Android / Gradle – Definindo um versionName diferente para build e release

gradle

Não é possível definir um versionName diferente para ‘debug’ e ‘release’ porem é possível adicionar um suffix no final do versionName:

android {
    signingConfigs {
        releaseKey {
            keyAlias 'key_flavors'
            keyPassword 'xxxxx'
            storeFile file('../key_release_flavors.jks')
            storePassword 'xxxx'
        }
    }
    compileSdkVersion 27
    defaultConfig {
        applicationId "br.com.helpdev.flavors"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            versionNameSuffix ".15.1"
        }
        release {
            versionNameSuffix ".14"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseKey
        }
    }
}

Dessa maneira ao compilar o projeto o debug ficaria com o versionName: 1.0.15.1 e o release com: 1.0.14.