是的,我们可以改变这一点,但需要更多关注
现在将其添加到您项目的 build.gradle 中,同时确保您已检查项目的 build variant,例如 release or Debug
所以在这里我将我的构建变体设置为release,但您也可以选择调试。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig getSigningConfig()
applicationVariants.all { variant ->
variant.outputs.each { output ->
def date = new Date();
def formattedDate = date.format('yyyyMMddHHmmss')
output.outputFile = new File(output.outputFile.parent,
output.outputFile.name.replace("-release", "-" + formattedDate)
//for Debug use output.outputFile = new File(output.outputFile.parent,
// output.outputFile.name.replace("-debug", "-" + formattedDate)
)
}
}
}
}
你可以用不同的方法来做这件事
defaultConfig {
applicationId "com.myapp.status"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", "COMU-$versionName")
}
在 build.gradle 中使用 Set 属性方法
并且不要忘记在运行项目之前同步 gradle
希望它能解决你的问题:)
谷歌更新最近添加了一种新的方法来处理这个问题
您现在可以根据风格或变体输出重命名您的构建
//Below source is from developer android documentation
有关更多详细信息,请点击上述文档链接
新插件破坏了使用 Variant API 操作变体输出的问题。它仍然适用于简单的任务,例如在构建期间更改 APK 名称,如下所示:
// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
重命名 .aab 包
这很好answered by David Medenjak
tasks.whenTaskAdded { task ->
if (task.name.startsWith("bundle")) {
def renameTaskName = "rename${task.name.capitalize()}Aab"
def flavor = task.name.substring("bundle".length()).uncapitalize()
tasks.create(renameTaskName, Copy) {
def path = "${buildDir}/outputs/bundle/${flavor}/"
from(path)
include "app.aab"
destinationDir file("${buildDir}/outputs/renamedBundle/")
rename "app.aab", "${flavor}.aab"
}
task.finalizedBy(renameTaskName)
}
//@credit to David Medenjak for this block of code
}
是否需要以上代码
我在最新版本的android studio 3.3.1中观察到的情况
.aab bundle 的重命名由前面的代码完成,根本不需要任何任务重命名。
希望对大家有所帮助。 :)