Android + Gradle生成代码版本

时间:2018-03-01 07:54:00

标签: android gradle

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

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-Child
  • V23-儿童
  • V14-父
  • V23-父

问题是:

如何基于defaultConfig.versionCode

为每个构建组合创建不同的代码版本

1 个答案:

答案 0 :(得分: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
    }
}
相关问题