Android 应用名称取决于 buildType 和 flavors Gradle

标签 android groovy gradle build

下面是我的 gradle 源代码的摘录。我想要实现的是在执行 buildType.debug 时为应用程序名称添加后缀。我尝试了以下代码,但变量在 gradle 中按顺序分配,因为它们写入文件而不是任务顺序。因此在下面的示例中,buildVariant 变量将始终等于 Release。

{
def buildVariant = ""   
buildTypes {
    debug {
        manifestPlaceholders = [showDebug: 'true']
        buildVariant = " (DEBUG)"
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [showDebug: 'false']
        signingConfig signingConfigs.myConf
        buildVariant = " Release"
    }
}    
productFlavors {

    flavour1{
        resValue 'string', 'app_name', 'Flavour1'+buildVariant
    }
    flavour2{
        resValue 'string', 'app_name', 'Flavour2'+buildVariant
    }
    flavour3{
        resValue 'string', 'app_name', 'Flavour3'+buildVariant
    }
}

最佳答案

这是一个非常有趣的难题,所以感谢您的提问!

在这里你可以做什么:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        ....
    }
    buildTypes {
        debug {
        }

        release {
        }
    }

    productFlavors {
        FlavorA {
        }

        FlavorB {
        }
    }

    applicationVariants.all { variant ->
        variant.resValue "string", "app_name", '"' + variant.productFlavors.get(0).name + '_' + variant.buildType.name + '"'
    }

}

dependencies {
}

因此,它会打印应用名称“FlavorA_debug”、“FlavorB_release”等。

(注意!我使用 gradle classpath 'com.android.tools.build:gradle:1.3.0' 运行它 - 效果很好,尽管我没有尝试使用旧版本)

关于Android 应用名称取决于 buildType 和 flavors Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34018612/

相关文章:

android - 如何在 lintOptions 中设置 severityOverrides?

android - 使用多个键检索数据 Firebase 实时数据库

android - MutableLiveData 的 postValue 方法返回 null

android - 如何为预定通知设置默认设备警报音?

java - 在失败的基础上继续前进

java - 我们如何将空字符串数组添加到 org.codehaus.groovy.ast.parameter 中?

android - 如何在 Android 设备上使用 pjsip 以获得 G.729 编解码器功能

regex - 为什么这个正则表达式不起作用?

android - 应用程序模块的 Kotlin Gradle 问题

java - maven central 是否希望共享源 URL?