gpt4 book ai didi

android - 如何在 Gradle (Android Studio) 中通过构建类型定义字符串并替换文件名

转载 作者:太空狗 更新时间:2023-10-29 13:15:10 26 4
gpt4 key购买 nike

我想用指定的构建类型替换生成的 apks 的名称:

android {
buildTypes {
def String proguard

release {
minifyEnabled false
zipAlignEnabled true
proguard = "noproguard"
}

releaseProguard {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

zipAlignEnabled true
proguard = "proguard"
}

}

// Replace the file names
android.applicationVariants.all { variant ->
variant.preBuild.doLast {
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
output.outputFile.name.replace(".apk", "-${variant.versionName}-${variant.versionCode}-" + proguard +.apk"))
}
}
}
}

但是,如果我创建一个带有“release”的签名 APK,我不会在 APK 的文件名中获得“noproguard”字符串,它会被最后一个构建类型覆盖:releaseProguard。

预期输出发布:app-qa-release-1.3.1-noprguard.apk

预期输出releaseProguard:app-qa-release-1.3.1-proguard.apk

最佳答案

这不是您要找的。

您可以使用您的 build.gradle设置此属性:

android {
//...

defaultConfig {
//...
project.ext.set("archivesBaseName", "XXXX_" + defaultConfig.versionCode);
}
}

分配 archivesBaseName你会得到类似的东西:

xxxx_0.9.6-flavorName-buildType.apk

您可以在 flavor block 中使用它来分配特定值。

此属性需要 gradle-plugin 1.3.1或更高。

关于android - 如何在 Gradle (Android Studio) 中通过构建类型定义字符串并替换文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com