¿Qué versión / número de compilación de la aplicación iOS DEBE incrementarse en el lanzamiento de App Store?

Los campos de versión / compilación para una aplicación iOS incluyen:

"Versión"CFBundleShortVersionString (Cadena: iOS, OS X) especifica el número de versión de lanzamiento del paquete, que identifica una iteración liberada de la aplicación. El número de versión de lanzamiento es una cadena que consta de tres enteros separados por puntos.

"Construir"CFBundleVersion (Cadena: iOS, OS X) especifica el número de versión de compilación del paquete, que identifica una iteración (liberada o no lanzada) del paquete. El número de versión de la compilación debe ser una cadena compuesta por tres enteros no negativos, separados por puntos, con el primer entero mayor que cero. La cadena solo debe contener caracteres numéricos (0-9) y puntos (.). Los ceros iniciales se truncan de cada entero y se ignorarán (es decir, 1.02.3 es equivalente a 1.2.3). Esta clave no es localizable.

"Número de versión de iTunes Connect": número de versión que especifica al crear una nueva versión de la aplicación en iTunes Connect.

Mi pregunta es:

¿Qué versión / números de compilación son?requiere ser incrementado ¿Cuándo se carga una nueva versión de la aplicación en iTunes Connect y / o se lanza a la App Store?

Puede cualquiera de "versión"CFBundleShortVersionString o "construir"CFBundleVersion sigue siendo el mismo entre las actualizaciones de la aplicación?

Puntos adicionales para las fuentes de Apple o los mensajes de error exactos que muestra iTunesConnect al cargar un número de versión / compilación no válido.

Android / Google Play nota:

La discusión que plantea esta pregunta es que la "versión" pública de una aplicación de Android en Google Play Store nono necesita ser incrementado y está ende ninguna manera validado losandroid:versionName puede permanecer igual entre versiones, actualizaciones, degradaciones o cualquier cadena aleatoria en lugar de algo que parece ser un "número de versión" válido.

android:versionName - Un valor de cadena que representa la versión de lanzamiento del código de la aplicación, como se debe mostrar a los usuarios.

El valor es una cadena para que pueda describir la versión de la aplicación como una<major>.<minor>.<point> cuerda,o como cualquier otro tipo del identificador absoluto o relativo de la versión.

Diferencia entre versionName y versionNumber en Android

Mientras que elandroid:versionCode se aplica para ser un entero de incremento en el lanzamiento.

Documentación de apple

Como se señala enla nueva respuesta aceptadaApple ha publicado recientemente una nota técnica que detalla su esquema de versión y número de compilación:

Apple Technical Note TN2420 - Números de versión y números de compilación

Respuestas a la pregunta(7)

Su respuesta a la pregunta