"app-release.apk" cómo cambiar este nombre de apk generado por defecto

Resuelto Prabs asked hace 54 años • 20 respuestas

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)ingrese la descripción de la imagen aquí

Prabs avatar Jan 01 '70 08:01 Prabs
Aceptado

Sí, podemos cambiar eso pero con un poco más de atención.

Mira esto

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. :)

Abhishek Chaubey avatar Jan 31 '2015 09:01 Abhishek Chaubey

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í:

  1. allse usa ahora en lugar de eachiterar sobre las salidas variantes.
  2. outputFileNameSe utiliza la propiedad en lugar de mutar una referencia de archivo.
Johnny Doe avatar Sep 03 '2017 21:09 Johnny Doe

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

Anrimian avatar Nov 01 '2017 06:11 Anrimian