Android + Gradle生成代码版本

问题描述 投票:0回答:1

在我的build.gradle文件中,我有两个flavor维度:

flavorDimensions "app", "mode"

...

productFlavors {
    parent {
        dimension "mode"
    }

    child {
        dimension "mode"
    }

    v14 {
        versionCode = defaultConfig.versionCode + 1;
        minSdkVersion 14
        dimension "app"
    }

    v23 {
        versionCode = defaultConfig.versionCode + 2;
        minSdkVersion 23
        dimension "app"
    }

现在我可以生成4种不同的应用程序:

  • V14-儿童
  • V23-儿童
  • V14-父
  • V23-父

问题是:

如何基于defaultConfig.versionCode为每个构建组合创建不同的代码版本

android gradle
1个回答
0
投票

它似乎以这种方式工作:

afterEvaluate {
    applicationVariants.all { variant ->

        def name = variant.name.toLowerCase();
        def vCode = 0;

        if (name.contains("v14")) {
            vCode = vCode + 1;
        }

        if (name.contains("v23")) {
            vCode = vCode + 2;
        }

        if (name.contains("child")) {
            vCode = vCode + 2;
        }

        variant.outputs.all { output ->
            output.setVersionCodeOverride(defaultConfig.versionCode + vCode)
        }

        variant.mergedFlavor.versionCode = defaultConfig.versionCode + vCode
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.