Android Gradle: изменение кода версии для каждого типа сборки - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь изменить код версии на основе условия для каждого варианта сборки, используя приведенный ниже скрипт Gradle, но он не работает. Я делаю что-то не так или есть другой способ добиться этого?

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "com.myapp.example"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }

    applicationVariants.all { variant ->
            if (variant.name == 'builTypeName') {
                variant.outputs.each { output ->
                    output.versionCodeOverride = 1.1
                }
            }
        }
}

Скажем, у меня есть одно имя варианта бесплатно, а другое оплачивается. Я хочу иметь versionCode 1.1 бесплатно и versionCode 1.2 за плату. Как я могу сделать это на основе условия при проверке каждого варианта?

1 Ответ

0 голосов
/ 26 апреля 2019

Используя сплит Apk и дай код версии

splits {
        abi {
            // Enable ABI split
            enable true
            // Clear list of ABIs
            reset()
            // Specify each architecture currently supported by the SDK
            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
            // Specify that we do not want an additional universal SDK
            universalApk false
        }
    }

     project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.versionCodeOverride =
                    project.ext.versionCodes.get(output.getFilter(
                            com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...