我为此制定了解决方案。基本上,您使用以下方法复制读取构建文件,修改属性值,然后重写文件。
def debugAppRename(variant, labelResource) {
def flavor = variant.productFlavors.get(0)
def buildtype = variant.buildType
// Append buildType name to app label
if(buildtype.debuggable) {
variant.mergeResources << {
def valuesFile = "$buildDir/res/all/${flavor.name}/${buildtype.name}/values/values.xml"
def values = (new XmlParser()).parse(valuesFile)
values.string.each { m->
if ([email protected] == labelResource) {
m.value = m.text() + " " + buildtype.name.capitalize()
new XmlNodePrinter(new PrintWriter(new FileWriter(valuesFile)))
.print(values)
}
}
}
}
}
使用它的方法是:
applicationVariants.all { variant ->
debugAppRename(variant, 'app_name') // where `app_name` is the string resource you use for the `app:label` property in your AndroidManifest.xml
}
所得应用程序将具有附加到它的buildType名称,如果它是一个可调试buildType,对于例如My App Debug
,My App Staging
等。release
构建保持不受影响。
我也把它放在gist
。
你可以在你的build.gradle
中使用apply from:
指令将其应用到原始URL中,或者将上面的代码复制到代码中(我个人发现构建脚本变得太大,所以我更愿意从中申请)。