Android的 - 基于构建类型变化的味道版本名称 [英] Android - change flavor version name based on build type

查看:144
本文介绍了Android的 - 基于构建类型变化的味道版本名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想更改版本的名称为应用程序的口味,但只有当它的调试版本。

(如调试版本将会有像1.0.1 D(调试)555或1.0.1 P(调试)555版本,但我只想要发布版本有类似的版本1.0.1) 我怎样才能做到这一点?

基本上,我有这些建类型:

  buildTypes {


    调试{
        versionNameSuffix(调试)+ mBuild

    }
    推出 {
        runProguard真
        proguardFiles getDefaultProguardFile('ProGuard的-的Andr​​oid optimize.txt),文件(ProGuard的-project.txt)
        signingConfig signingConfigs.release
    }
}
 

和这些味道(对于不同的API环境下):

  productFlavors {
    开发{
        VERSIONNAME = android.defaultConfig.versionName +D
    }
    督促{
        VERSIONNAME = android.defaultConfig.versionName +P
    }
}
 

有什么办法如何让发布版本没有产品口味版本名称的变化?

我试图动态设置版本名称通过

  buildTypes.each {buildType  - >
    如果(buildType.name =='调试'){
        productFlavors.dev.versionName = android.defaultConfig.versionName +D
    }
}
 

但这会导致

  

找不到物业开发的GroupableProductFlavorDsl容器。

解决方案

在寻找我已经成功地删除使用该code到版本名称为制作发布版本所有的变化小时

  applicationVariants.all {变种 - >
    如果(variant.buildType.name =='释放'){
        variant.mergedFlavor.versionName = android.defaultConfig.versionName;
    }
}
 

I want to change version name for app flavors but only if it's a debug build.

(e.g. debug builds will have versions like 1.0.1 D (DEBUG) 555 or 1.0.1 P (DEBUG) 555, however I want the release builds only to have version like 1.0.1) How can I achieve this?

Basically I have these build types:

buildTypes {


    debug {
        versionNameSuffix " (DEBUG) " + mBuild

    }
    release {
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), file('proguard-project.txt')
        signingConfig signingConfigs.release
    }
}

and these flavors (for different api environment):

productFlavors {
    dev {
        versionName = android.defaultConfig.versionName + " D"
    }
    prod {
        versionName = android.defaultConfig.versionName + " P"
    }
}

Is there any way how to make release builds without product flavors version name change?

I've tried to set the version name dynamically via

    buildTypes.each { buildType ->
    if(buildType.name == 'debug') {
        productFlavors.dev.versionName = android.defaultConfig.versionName + " D"
    }
}

but this results in

Could not find property 'dev' on GroupableProductFlavorDsl container.

解决方案

After hours of searching I've managed to remove all the changes made to the version name for the release build using this code

applicationVariants.all { variant ->
    if (variant.buildType.name == 'release') {
        variant.mergedFlavor.versionName = android.defaultConfig.versionName;
    }
}

这篇关于Android的 - 基于构建类型变化的味道版本名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆