El documento de Apple podría haber sido más claro sobre cómo enviar una versión de actualización.
Como se pregunta en el título, ¿Cuál es la diferencia entre
- número de versión en itunes connect (que debe proporcionar cuando envía una actualización)
- versión del paquete en xcode
- paquete de versiones cadena, corta
¿Están relacionados de alguna manera?
Respuestas:
Sí, están relacionados. Todos se refieren a la versión de su aplicación.
iTunes Connect
Este es el número de versión que se muestra en la App Store; Debe ser un número de versión puro como
1.2.3
Versión de paquete (CFBundleVersion)
No es necesario que sea un número de versión puro. Esto puede ser algo como
12345
o1.2.3 (Build 12345AB)
. Esto se muestra en la ventana Acerca de para las aplicaciones de Mac OS X, por ejemplo, y a menudo es más un "Número de compilación" que un "Número de versión".Cadena de versión de paquete (CFBundleShortVersionString) Este valor se utiliza como el número de versión "real". Esta debe ser la misma cadena que se utiliza para la versión de iTunes Connect .
Actualización:
como lo señaló @snlehton, CFBundleVersion tiene que ser un número de versión puro, como
1.2.3
cuando desea cargar su aplicación en la App Store (iOS).fuente
1.2.3
y luego incremente la versión del paquete para cada compilación.Sí, están relacionados, pero su definición depende de cómo se utilicen.
Siempre debe ser un número de versión, por ejemplo, 1.0
Modo de uso 1: solo se establece CFBundleVersion
Debe ser un número de versión, por ejemplo, 1.0. Debe coincidir con la versión de iTunes Connect.
Modo de uso 2: se establecen CFBundleVersion y CFBundleShortVersionString
Debe ser un número de compilación, por ejemplo, un solo entero como 435163.
Debe ser un número de versión, por ejemplo, 1.0. Debe coincidir con la versión de iTunes Connect.
El modo de uso 2 es la mejor manera de hacerlo. A continuación, se muestran algunos números de ejemplo para la ruta de actualización de una aplicación:
Una nota adicional sobre los números de versión: si envía una actualización menor (por ejemplo, corrección de errores) a su aplicación, nunca debe perderse puntos en el número de versión, por ejemplo, use siempre 1.0.1 y NUNCA 1.01 o correrá el riesgo de no poder usar ciertos números de versión en el futuro porque no será posible incrementarlos.
fuente
Sí, todos están relacionados.
El número de versión en itunesconnect es el número de versión que debe proporcionar. Por ejemplo, 2.1.1 o 3.1.2, etc. Esto también debería ser igual a CFBundleShortVersionString .
La versión del paquete en Xcode ( CFBundleVersion ) representa solo el número de compilación que identifica una iteración (publicada o no publicada) de la aplicación.
La cadena de versiones del paquete, corta ( CFBundleShortVersionString ) es un número que consta de tres enteros separados por puntos. El primero representa cualquier actualización importante de la aplicación, como actualizaciones que implementan nuevas funciones o cambios importantes. El segundo número entero denota revisiones que implementan características menos prominentes. El tercer número entero representa las versiones de mantenimiento.
fuente
Tenga cuidado con CFBundleVersion . No es solo un número de construcción de producción. Apple comprueba este valor durante el proceso de carga binaria y puede fallar.
Asegúrese de configurar CFBundleVersion con el valor de CFBundleShortVersionString cuando cree su versión para su envío.
Ver esta publicación al respecto
fuente
CFBundleVersion
no tiene por qué coincidirCFBundleShortVersionString
. Por ejemplo, si miras el archivo .ipa actual para Chrome (en la tienda de aplicaciones ahora), tienen "34.0.1847.18" paraCFBundleVersion
y "34.1847.18" paraCFBundleShortVersionString
.La respuesta aceptada es el camino a seguir, solo agregue esto como ejemplo.
Para nuestra última versión, se requería la "Cadena de versión del paquete, corta", y seguí adelante y la combiné con el número de versión del paquete (1.2.8 para nuestra aplicación).
Luego habilité Testflight e hice que la versión pendiente de revisión de Apple (1.2.8) estuviera disponible para nuestros evaluadores internos. Sin embargo, un evaluador encontró un problema que requería solución y eliminamos el binario en su lugar. Al cargar una nueva compilación, recibimos un error que indica que la versión de compilación ya se cargó.
Después de leer algunos enlaces SO y documentos de Apple, entendí que debía hacer la versión del paquete: 1.2.8.001, mientras se mantenía la versión del paquete corta tal como estaba. Si se requiere una nueva compilación, incrementamos la versión del paquete a 1.2.8.002.
Nota: se aceptó la carga y la compilación aparece como "1.2.8.001" en la versión preliminar. El número de versión sigue siendo 1.2.8.
fuente
La respuesta aceptada de este enlace contiene buenos detalles: ¿Qué versión de la aplicación iOS / número (s) de compilación DEBEN incrementarse en el lanzamiento de la App Store?
De los documentos de Apple
CFBundleVersion (versión de paquete)
CFBundleVersion (String: iOS, OS X) especifica el número de versión de compilación del paquete, que identifica una iteración (publicada o no publicada) del paquete. El número de versión de compilación debe ser una cadena compuesta por tres enteros separados por puntos no negativos, siendo el primer entero mayor que cero. La cadena solo debe contener caracteres numéricos (0-9) y punto (.). 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.
CFBundleShortVersionString (cadena de versiones de paquete, corta)
CFBundleShortVersionString (String - iOS, OS X) especifica el número de versión de lanzamiento del paquete, que identifica una iteración lanzada de la aplicación. El número de versión de lanzamiento es una cadena compuesta por tres enteros separados por puntos. El primer número entero representa revisiones importantes de la aplicación, como revisiones que implementan nuevas funciones o cambios importantes. El segundo número entero denota revisiones que implementan características menos prominentes. El tercer número entero representa las versiones de mantenimiento.
El valor de esta clave difiere del valor de CFBundleVersion, que identifica una iteración (publicada o no publicada) de la aplicación. Esta clave se puede localizar incluyéndola en sus archivos InfoPlist.strings.
fuente