Android / gradle: incluye el nombre de la versión del sabor en el nombre de archivo apk

He encontrado preguntas similares, pero nada que funciona para lo que quiero hacer. Estoy desarrollando con Android Studio y gradle, y tengo varios sabores en mi archivo de construcción, cada uno de los cuales tiene un nombre de versión. ¿Hay alguna manera de incluir el nombre de la versión del sabor en el archivo APK?

EDIT: Para versiones modernas de las herramientas de Gradle, use la variación de @ ptx (use output.outputFile en lugar de variant.outputFile :

 android { applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parentFile, output.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

A partir de la versión 0.14 de las herramientas de Gradle, debes empezar a utilizar lo siguiente para soportar correctamente varios archivos de salida (por ejemplo, las divisiones APK):

 android { applicationVariants.all { variant -> variant.outputs.each { output -> variant.outputFile = new File(variant.outputFile.parentFile, variant.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

Para versiones anteriores:


Sí, lo hacemos en nuestra aplicación. Simplemente añada lo siguiente en su etiqueta android en build.gradle:

 android { applicationVariants.all { variant -> def oldFile = variant.outputFile def newPath = oldFile.name.replace(".apk", "${variant.versionName}.apk") variant.outputFile = new File(oldFile.parentFile, newPath) } } 

La respuesta de kcoppock es correcta, pero hay un pequeño error tipográfico. Debería ser:

 android { applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parentFile, output.outputFile.name.replace(".apk", "${variant.versionName}.apk")); } } } 

(Escribí esto como una respuesta porque no tengo la reputación de hacer un comentario)

  • No se puede generar APK firmado desde el estudio de Android "Error de ejecución para la tarea": ​​packageRelease '"
  • Compilaciones de proyectos de Android, pero dependencias de maven no reconocidas en Android Studio
  • Duplicar archivos copiados en APK Android - ¿Puede ser fusionado?
  • Cómo depurar el módulo de la biblioteca android en Android Studio?
  • Error: (1, 0) No se encontró el complemento con id 'com.android.application'
  • Publicar sólo un aar en maven central
  • Gradle está generando APKs debugables en modo de liberación
  • Gradle ArchivesBaseName ignorado al usar el complemento GoogleServices
  • ¿Puede una biblioteca JAR de Android depender de una librería AAR de Android?
  • java.io.File no se puede convertir en org.gradle.api.artifacts.Configuration
  • Gradle configuration.apt definición
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.