Vâng, chúng tôi có thể thay đổi điều đó nhưng với một số chú ý hơn
Bây giờ hãy thêm cái này vào build.gradle trong dự án của bạn trong khi đảm bảo rằng bạn đã kiểm tra biến thể xây dựng của dự án của bạn như release or Debug
vậy ở đây tôi đã đặt biến thể xây dựng của tôi như release
nhưng bạn cũng có thể chọn là Debug.
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)
)
}
}
}
}
Bạn có thể làm điều đó với cách tiếp cận khác nhau như thế này
defaultConfig {
applicationId "com.myapp.status"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", "COMU-$versionName")
}
Sử dụng phương thức thuộc tính Set trong build.gradle
và Đừng quên đồng bộ hóa lớp trước khi chạy các dự án
Hy vọng nó sẽ giải quyết vấn đề của bạn :)
Cách tiếp cận Một New để xử lý này thêm thời gian gần đây bởi bản cập nhật google
Bây giờ bạn có thể đổi tên của bạn xây dựng theo hương vị hoặc đầu ra Variant
// Dưới đây là nguồn tài liệu từ nhà phát triển Android
Để biết thêm thông tin chi tiết theo liên kết tài liệu trên
Sử dụng API Ngôn ngữ địa phương để thao tác kết quả đầu ra biến thể được chia với plugin mới. Nó vẫn hoạt động cho các tác vụ đơn giản, chẳng hạn như thay đổi tên APK trong thời gian xây dựng, như hiển thị bên dưới:
// 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"
}
}
Đổi tên gói .aab Điều này được trả lời độc đáo bởi 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
}
Có cần mã ở trên không
Những gì tôi đã quan sát trong phiên bản mới nhất của studio android 3.3.1
Việc đổi tên gói .aab được thực hiện bởi mã trước đó không yêu cầu bất kỳ tác vụ nào đổi tên tất cả.
Hy vọng nó sẽ giúp các bạn. :)