Version Code es un número entero positivo en el desarrollo de Android que identifica de forma única cada nueva compilación de la aplicación. Google Play y el sistema Android usan el Version Code para determinar si es necesaria una actualización: si el código de la nueva compilación es mayor que el instalado, se inicia el proceso de actualización. Según la Documentación para Desarrolladores de Android, el Version Code no se muestra al usuario y sirve exclusivamente para la numeración interna de versiones.
Puntos clave
Version Code es un número entero de tipo Integer que se asigna a cada compilación de una aplicación Android. A diferencia del Version Name, el Version Code no se muestra al usuario y lo utilizan exclusivamente el sistema operativo y Google Play para comparar versiones al instalar actualizaciones.
Version Code debe ser un número entero positivo en el rango de 1 a 2100000000. Cada compilación posterior debe tener un Version Code estrictamente mayor que el anterior. Si un desarrollador publicó una compilación con Version Code 5, la siguiente publicación puede usar 6, 7 o cualquier número mayor que 5, pero no 4 ni 5 nuevamente.
Google introdujo la separación entre Version Code y Version Name con el lanzamiento del SDK de Android en 2007. Version Code fue concebido como un identificador de máquina para la comparación automática de versiones, mientras que Version Name se concibió como una etiqueta legible para humanos. Esta separación permite al desarrollador nombrar la versión como desee, manteniendo un orden estricto de actualizaciones mediante el código numérico.
| Parámetro | Version Code | Version Name |
|---|---|---|
| Tipo de dato | Integer | String |
| Visualización al usuario | No | Sí |
| Comparación de versiones | Comparación numérica | No se usa |
| Formato | 1, 2, 3, 10, 100 | 1.0.0, 2.3.1-rc |
| Rango | 1 — 2100000000 | Sin límites |
El mecanismo de comparación del Version Code está integrado en el sistema operativo Android y en Google Play. Con cada publicación, Google Play verifica que el Version Code de la nueva compilación sea mayor que el código de la versión instalada. Si no se cumple la condición, la publicación se rechaza con un error.
Cuando un dispositivo se conecta a Google Play para buscar actualizaciones, el servidor compara el Version Code de la aplicación instalada con el máximo disponible en la tienda. Si el código en el servidor es mayor, se inicia la descarga e instalación de la actualización. El usuario ve el Version Name indicado por el desarrollador, pero la decisión de actualizar se toma en base al Version Code.
Los desarrolladores aplican diferentes estrategias para incrementar el Version Code. La más simple es aumentar en 1 con cada compilación. Para pipelines CI/CD se suele usar un timestamp o el número de compilación: 2026070301 (año-mes-día-número). Es importante que el código aumente monótonamente y no se repita entre diferentes compilaciones y canales de Google Play.
Version Code y Version Name son dos campos independientes en build.gradle que cumplen funciones diferentes. Version Code es un identificador interno para el sistema, Version Name es una etiqueta de marketing para el usuario. Pueden cambiar independientemente uno del otro.
Version Name es una cadena que se muestra en la configuración de la aplicación, en Google Play y en los diálogos de actualización. El desarrollador puede especificar cualquier formato: 1.0.0, 2.3.1-beta, 3.0-rc1. Version Name no se usa para comparar versiones textuales — Google Play siempre se basa en el Version Code.
Es posible una situación donde el Version Code aumenta mientras que el Version Name permanece igual. Por ejemplo, si un desarrollador corrige un error crítico en una compilación hotfix sin cambiar la funcionalidad. El Version Name sigue siendo 2.0.0, mientras que el Version Code cambia de 5 a 6. Google Play manejará correctamente dicha actualización.
// Ejemplo: el version name no cambia, el código aumenta
android {
defaultConfig {
versionCode 6 // Era 5 — hotfix sin nuevas funciones
versionName "2.0.0" // No cambió
}
}
// Verificación de versiones en runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Name: $name")
La configuración del Version Code se realiza en el archivo build.gradle del módulo de la aplicación. El campo versionCode acepta un número entero y forma parte del bloque defaultConfig. Para diferentes compilaciones de variantes (flavors), se pueden establecer valores personalizados mediante el campo versionCode en la configuración del producto.
// build.gradle.kts — Kotlin DSL
android {
defaultConfig {
applicationId "com.example.app"
versionCode 15
versionName "2.1.0"
}
flavorDimensions +"version"
productFlavors {
create("demo") {
versionCode 1015
}
create("full") {
versionCode 2015
}
}
}
Los Product flavors permiten usar diferentes Version Code para distintas configuraciones: versión demo, versión separada para tabletas. Si se usan flavors en el proyecto, el Version Code final se compone del número base y el incremento específico del flavor. Google Play rastrea cada combinación de forma independiente.
En los pipelines CI/CD (GitHub Actions, GitLab CI, Jenkins), el Version Code a menudo se genera automáticamente basándose en el número de compilación o la fecha. Esto elimina el error humano en las actualizaciones manuales. El script lee el Version Code actual de build.gradle, lo incrementa y lo escribe de nuevo antes de iniciar la compilación.
// Incremento automático del Version Code
import java.util.Properties
import java.io.FileInputStream
val versionProps = Properties()
versionProps.load(FileInputStream("version.properties"))
val versionCode = versionProps.getProperty("VERSION_CODE").toInt() + 1
versionProps.setProperty("VERSION_CODE", versionCode.toString())
android {
defaultConfig {
versionCode = versionCode
}
}
Google Play tiene reglas estrictas para el Version Code al publicar y actualizar aplicaciones. Violar estas reglas provoca el rechazo de la compilación o la imposibilidad de lanzar una actualización. El desarrollador debe comprender las limitaciones y las estrategias de gestión del código en todas las etapas del ciclo de vida.
Google Play no permite subir un APK o AAB cuyo Version Code sea menor o igual al publicado actualmente. Esta regla se aplica a cada canal (production, beta, alpha) de forma independiente. Si en production se ha subido una compilación con Version Code 10 y en alpha una con código 5, el canal alpha puede actualizarse a 6, 7, 8 o 9, pero production permanece en 10.
Al promover una compilación de alpha a beta y luego a production, el Version Code debe aumentar en cada etapa. Si la versión alpha tiene código 10, beta puede usar 11 y production 12. No se puede lanzar a production una compilación con código 10 si alpha ya está usando 10, incluso si production aún no lo ha visto.
El error más común es la coincidencia del Version Code en diferentes compilaciones subidas al mismo canal. Google Play devuelve el error APK_VERSION_CODE_ALREADY_EXISTS. Otro error es superar el valor máximo de 2100000000, lo que provoca un fallo de compilación. Para evitar conflictos, use la generación automática de código en su sistema CI vinculada al número de compilación o a la fecha de compilación.
Los desarrolladores también suelen cometer el error de no incrementar el Version Code al compilar un hotfix para un canal alternativo. Si production tiene código 15 y el canal alpha se quedó en 14, al promover alpha a production, Google Play rechazará la compilación porque su código es menor que el código actual de production. Supervise la monotonicidad del código en todos los canales simultáneamente — para ello, es conveniente usar un único archivo version.properties del cual todos los canales lean el valor actual.
Preguntas frecuentes
No, Google Play no permite subir una compilación con un Version Code menor o igual al publicado actualmente en el mismo canal. El sistema verifica el código al subirlo y devuelve un error si se viola la regla de incremento monótono. Para los canales alfa y beta se aplica el mismo principio de forma independiente.
Para la primera publicación puede indicar Version Code 1. Google Play no establece un umbral mínimo, aparte de un número entero positivo. Se recomienda empezar con 1 e incrementar en 1 con cada compilación posterior. Si usa un formato timestamp, la primera compilación podría ser 20260701.
Version Code es un identificador interno de máquina usado por el sistema para la comparación. Version Name es una etiqueta visible para el usuario que se muestra en Google Play y en el dispositivo. El usuario ve el Version Name (por ejemplo, 2.0.0), mientras que Google Play usa el Version Code para determinar si es necesaria una actualización.
El valor máximo del Version Code es 2100000000 (Integer.MAX_VALUE). Si se supera, el compilador devolverá un error porque el campo es de tipo int. Para proyectos con un gran número de compilaciones (CI/CD con lanzamientos diarios), se recomienda usar un formato timestamp o reiniciar el contador al inicio de una versión major.
Version Code no se usa directamente para pruebas A/B, pero influye indirectamente. Google Play permite configurar el despliegue gradual (staged rollout) por porcentaje de usuarios para una compilación específica. El Version Code identifica la compilación, mientras que las pruebas A/B se configuran mediante Firebase Remote Config o servicios similares.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también