下面是我的 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/