versionCode vs versionName en Android Manifest

Tenía mi aplicación en el mercado de Android con el código de versión = 2 y el nombre de la versión = 1.1

Sin embargo, al actualizarlo hoy, cambié el código de versión = 3 en el manifiesto pero por error cambié mi nombre de versión a 1.0.1 y cargué el apk en el mercado.

Ahora, ¿los usuarios de mi aplicación recibirán una notificación de actualización en sus teléfonos o no? ¿O debería volver a hacer el proceso?

Link de referencia

android: versionCode

Un número de versión interno. Este número se usa solo para determinar si una versión es más reciente que otra, con números más altos que indican versiones más recientes. Este no es el número de versión que se muestra a los usuarios; ese número lo establece el atributo versionName. El valor debe establecerse como un entero, como “100”. Puede definirlo como quiera, siempre que cada versión sucesiva tenga un número más alto. […]

android: versionName

El nombre de la versión que se muestra a los usuarios. Este atributo se puede establecer como una cadena sin formato o como una referencia a un recurso de cadena. La cadena no tiene otro propósito que el de mostrarse a los usuarios. El atributo versionCode contiene el número de versión significativo utilizado internamente.

Leyendo que está bastante claro que versionName es solo algo que se muestra al usuario, versionCode es lo que importa. Solo sigue aumentando y todo debería ser bueno.

No necesitas revertir tus pasos. A medida que aumentó su VersionCode, significa que su aplicación ya se ha actualizado. El VersionName es solo una cadena que se presenta al usuario para la legibilidad del usuario. Google play no realiza ninguna acción dependiendo de VersionName.

Le daré mi interpretación de la única documentación que puedo encontrar sobre el tema.

“por ejemplo para verificar una relación de actualización o degradación”. <- Puedes degradar una aplicación.

“debe asegurarse de que cada versión sucesiva de su aplicación utilice un valor mayor. El sistema no aplica este comportamiento” <- El número realmente debería aumentar, pero aún puede degradar una aplicación.

android: versionCode – Un valor entero que representa la versión del código de la aplicación, en relación con otras versiones. El valor es un número entero para que otras aplicaciones puedan evaluarlo mediante progtwigción, por ejemplo, para verificar una relación de actualización o degradación. Puede establecer el valor en cualquier número entero que desee, sin embargo, debe asegurarse de que cada versión sucesiva de su aplicación utilice un valor mayor. El sistema no aplica este comportamiento, pero boost el valor con lanzamientos sucesivos es normativo. Normalmente, usted lanzaría la primera versión de su aplicación con versionCode configurado en 1, luego monótonamente boostía el valor con cada lanzamiento, independientemente de si el lanzamiento constituye una versión mayor o menor. Esto significa que el valor de android: versionCode no tiene necesariamente un gran parecido con la versión de lanzamiento de la aplicación que es visible para el usuario (vea android: versionName, más abajo). Las aplicaciones y los servicios de publicación no deberían mostrar este valor de versión a los usuarios.

android: versionCode – Un valor entero que representa la versión del código de la aplicación, en relación con otras versiones.

El valor es un número entero para que otras aplicaciones puedan evaluarlo mediante progtwigción, por ejemplo, para verificar una relación de actualización o degradación. Puede establecer el valor en cualquier número entero que desee, sin embargo, debe asegurarse de que cada versión sucesiva de su aplicación utilice un valor mayor. El sistema no aplica este comportamiento, pero boost el valor con lanzamientos sucesivos es normativo.

android: versionName – Un valor de cadena que representa la versión de lanzamiento del código de la aplicación, como debería mostrarse a los usuarios.

El valor es una cadena para que pueda describir la versión de la aplicación como una cadena, o como cualquier otro tipo de identificador de versión absoluta o relativa.

Al igual que con android: versionCode, el sistema no usa este valor para ningún propósito interno, excepto para permitir que las aplicaciones lo muestren a los usuarios. Los servicios de publicación también pueden extraer el valor de android: versionName para mostrar a los usuarios.

Normalmente, usted lanzaría la primera versión de su aplicación con versionCode configurado en 1, luego monótonamente boostía el valor con cada lanzamiento, independientemente de si el lanzamiento constituye una versión mayor o menor. Esto significa que el valor de android: versionCode no tiene necesariamente un gran parecido con la versión de lanzamiento de la aplicación que es visible para el usuario (vea android: versionName, más abajo). Las aplicaciones y los servicios de publicación no deberían mostrar este valor de versión a los usuarios.

De hecho, se basa en versionCode y no en versionName. Sin embargo, noté que cambiar el código de versión en AndroidManifest.xml no era suficiente con Android Studio – Gradle build system. Necesitaba cambiarlo en build.gradle.

Código de versión Representa la versión de su código, el sistema operativo Android comprueba la actualización mediante el uso de esta variable, ya sea que este código sea antiguo o nuevo.

Nombre de la versión Representa el nombre de la versión en el formato-

(Mayor). (Menor). (Punto)

Cadena, utilizada solo para cadenas legibles, el código de versión funcional ha sido utilizado por el sistema operativo.

El código de versión es utilizado por google play store para la nueva actualización. Y el nombre de la versión se muestra al usuario. Si ha aumentado el código de la versión, la actualización estará visible para todos los usuarios.

Para obtener información más detallada, da 2 minutos de lectura a este artículo https://developer.android.com/studio/publish/versioning.html