"app-release.apk" cómo cambiar este nombre de apk generado por defecto
Cada vez que genero un apk firmado en Android Studio, de forma predeterminada aparece el nombre app-release.apk...
¿Podemos hacer alguna configuración para que me pregunte el nombre que debe asignarse al apk (como lo hace en eclipse)?
Lo que hago es cambiar el nombre del apk después de que se haya generado. Esto no genera ningún error, pero ¿hay alguna forma genuina de poder realizar cambios en la configuración para recibir un mensaje?
Nota::
mientras genero apk android studio me indica que seleccione la ubicación (solo)
Sí, podemos cambiar eso pero con un poco más de atención.
Ahora agregue esto en su build.gradle en su proyecto mientras se asegura de haber verificado la variante de compilación de su proyecto, así release or Debug
que aquí configuré mi variante de compilación release
, pero también puede seleccionarla como Depurar.
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)
)
}
}
}
}
Puedes hacerlo con un enfoque diferente como este
defaultConfig {
applicationId "com.myapp.status"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", "COMU-$versionName")
}
Usando el método Establecer propiedad en build.gradle y no olvide sincronizar Gradle antes de ejecutar los proyectos. Espero que resuelva su problema :)
Un nuevo enfoque para manejar esto agregado recientemente por la actualización de Google. Ahora puede cambiar el nombre de su compilación según el tipo o la salida variante. //La fuente a continuación proviene de la documentación del desarrollador de Android. Para obtener más detalles, siga el enlace de documentación anterior.
El uso de la API variante para manipular las salidas variantes no funciona. con el nuevo complemento. Todavía funciona para tareas simples, como cambiar el nombre del APK durante el tiempo de compilación, como se muestra a continuación:
// 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"
}
}
Cambiar el nombre del paquete .aab David Medenjak respondió muy bien a esta pregunta
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
}
¿Se necesita el código anterior?
Lo que he observado en la última versión de Android Studio 3.3.1.
El cambio de nombre del paquete .aab se realiza mediante el código anterior; no es necesario cambiar el nombre de ninguna tarea.
Espero que les ayude chicos. :)
Es posible que obtenga el error con el último complemento de gradle de Android ( 3.0 ):
No se puede establecer el valor de la propiedad de solo lectura 'outputFile'
Según la guía de migración , deberíamos utilizar el siguiente enfoque ahora:
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${applicationName}_${variant.buildType.name}_${defaultConfig.versionName}.apk"
}
}
Tenga en cuenta 2 cambios principales aquí:
all
se usa ahora en lugar deeach
iterar sobre las salidas variantes.outputFileName
Se utiliza la propiedad en lugar de mutar una referencia de archivo.
Aquí hay una forma mucho más corta:
defaultConfig {
...
applicationId "com.blahblah.example"
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "(" + versionName + ")")
//or so
archivesBaseName = "$applicationId-v$versionCode($versionName)"
}
Le da el nombre com.blahblah.example-v1(1.0)-debug.apk (en modo de depuración)
Android Studio agrega versionNameSuffix por nombre de tipo de compilación de forma predeterminada; si desea anular esto, haga lo siguiente:
buildTypes {
debug {
...
versionNameSuffix "-MyNiceDebugModeName"
}
release {
...
}
}
Salida en modo de depuración: com.blahblah.example-v1(1.0)-MyNiceDebugModeName.apk