我爲此制定瞭解決方案。基本上,您使用以下方法複製讀取構建文件,修改屬性值,然後重寫文件。
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中,或者將上面的代碼複製到代碼中(我個人發現構建腳本變得太大,所以我更願意從中申請)。