Trucos de código de versión de Android
Probemos esta opción. Primero configuraremos la aplicación y proporcionaremos 1 como versionCode por defecto y lo anularemos a 2 para todas las salidas variantes:
Pero luego si miramos dentro del archivo BuildConfig
veremos que el código de versión sigue siendo 1. Aunque si miramos en el AndroidManifest resultante veremos que el código de versión está correctamente configurado a 2.
¿Fallo o característica? Averigüemos qué está pasando.
Dentro del código podemos acceder al código de la versión desde BuildConfig.VERSION_CODE
o desde PackageManager.packageInfo.versionCode
:
Después de ejecutar el código en Logcat veremos exactamente lo que hemos observado anteriormente:
La razón por la que esto ocurre es que en las herramientas de construcción de android gradle hay dos tareas separadas para generar el archivo BuildConfig y para procesar AndroidManifest.
Si miramos dentro de GenerateBuildConfig veremos que la propiedad VERSION_CODE
se genera desde el método getVersionCode()
:
Y que getVersionCode
hace referencia al valor almacenado en variantConfiguration
: