Android studio, app- (release | debug) .apk olarak varsayılan apk adını üretecektir.
apk dosya adı, com.example-debug.apk
gibi uygulamanın paket adıyla aynı şekilde nasıl oluşturulur. senin modülün build.gradle bu koyarakAndroid Studio'da paket adı olarak apk adı oluştur
cevap
deneyin
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
def appId = android.defaultConfig.applicationId
def fileName = appId + "-" variant.buildType.name +".apk"
output.outputFile = new File(file.parent, fileName)
}
}
teşekkürler olduğunu. – Bangaram
Bu sadece benim için bir APK yayınlıyor ve her bir derleme varyantı için bir APK çıkarmıyor. – Subby
Elbette, başka bir varyant için apk istiyorsanız, önce yapı varyantını değiştirmeniz gerekir. Veya tüm sürümleri oluşturmak için bir komut kullanın. Bu kod sadece apk'nin ismini değiştirir, başka bir şey değil. Terminalde './gradlew assemble' kullanan – slezadav
bu link görebilirsiniz. veya Mantıksız seçenek release|debug.apk
dosya adında ne istediğinizi adlandırmak için yeniden adlandırın.
bu kodu sizin için yararlı olabilir:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def formattedDate = new Date().format('yyyyMMddHHmmss')
def newName = output.outputFile.name
newName = newName.replace("app-", "$rootProject.ext.appName-") //"MyAppName" -> I set my app variables in the root project
newName = newName.replace("-release", "-release" + formattedDate)
//noinspection GroovyAssignabilityCheck
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
debug {
}
}
kodunuzu :) keyfini
içine bu kodu project.Put üst düzey dizininde customname.gradle adlı bir dosya oluşturun.
android.applicationVariants.all { variant ->;
def appName
//Check if an applicationName property is supplied; if not use the name of the parent project.
if (project.hasProperty("applicationName")) {
appName = applicationName
} else {
appName = parent.name
}
variant.outputs.each { output ->;
def newApkName
//If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such.
if (output.zipAlign) {
newApkName = "${appName}-${output.baseName}-${variant.versionName}.apk"
} else {
newApkName = "${appName}-${output.baseName}-${variant.versionName}-unaligned.apk"
}
output.outputFile = new File(output.outputFile.parent, newApkName)
}}
Ardından uygulama modülünün gradle içinde
archivesBaseName
ayarı, başka görevleri kullanmadan bu kodu
apply from: "../customname.gradle"
Yapabilirsin ekleyin. Örneğin
:
defaultConfig {
....
project.ext.set("archivesBaseName", "MyName-" + defaultConfig.versionName);
}
Çıktı: Senin durumunda
MyName-1.0.12-release.apk
:
project.ext.set("archivesBaseName", "com.example");
için './gradlew assembleRelease' veya './gradlew assembleDebug' komutunu kullanabilirsiniz. RootProject adına erişebilir ve bu şekilde kullanabilirsiniz: "project.ext.set (" archivesBaseName "), rootProject.getName() + "-" + defaultConfig.versionName); ' –
, ne yazık ki arşivler varyantlarıyla çalıştığınızda ölçeklenmiyorBaseName hepsi için global – Ewoks
Bu size yardımcı olabilir. Bu kod, uygulama adınızın paket adınız olabileceği applicationId-release.apk
veya applicationId-debug.apk
gibi uygulama adı oluşturacaktır.
buildTypes {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def newName = output.outputFile.name
newName = newName.replace("app-", applicationId)
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
bu bağlantıyı http://stackoverflow.com/questions/22126299/change-apk-name-with-gradle/22126638#22126638 yardımcı olabilir –
yukarıdaki bağlantı güncelleştirme onun çalışma için yararlı –