CFBundleVersion en el error de carga de Info.plist


108

"El binario que cargó no es válido. La clave CFBundleVersion en el archivo Info.plist debe contener una versión superior a la versión cargada anteriormente".

Recibo este error cuando llego a cargar mi aplicación.

Configuré la versión actualizada a 1.2 en iTunes Connect y también actualicé el .plistarchivo a 1.2.

No entiendo por qué recibo este error. Cualquier ayuda sería apreciada. Gracias.


¿Por qué no intentar configurarlo en, digamos, 1.2.1?
Nikita Rybak

Probé muchas combinaciones. Ninguno funciona. Ese error sigue apareciendo.
Adam H

1
¿Y cuál es la versión cargada anteriormente (como se encuentra en Info.plist de la aplicación de envío actual)?
Costique

¿Has resuelto este problema? El mismo problema me sucedió de repente. Es frustrante.
Wayne Lo

Acabo de recibir un correo electrónico con este error y resulta que una de mis versiones anteriores, que estaba atascada en ITC como "procesamiento" durante la semana pasada, finalmente se procesó. Cuando se atascó por primera vez, volví a enviar otra compilación con un número de compilación incrementado, por lo que cuando finalmente se procesó la anterior, se desencadenó el error.
blwinters

Respuestas:


210

Hay al menos 1 error conocido en el servidor de carga de Apple que no han solucionado durante más de 12 meses. Cosas a tener en cuenta:

  1. Apple elimina los ceros iniciales dentro del número de versión; es decir, la "cadena completa" NO se trata como un número, sino que los bits entre puntos se tratan como números SEPARADOS. por ejemplo, Apple trata "1.02" como "1.2". Entonces, para Apple, 1.02 es MAYOR QUE 1.1
  2. Apple a veces se "confunde" y parece comparar su aplicación cargada con la versión de una aplicación DIFERENTE que ha subido anteriormente. Le ha pasado a mucha gente, y yo mismo lo he visto varias veces
  3. Se supone que Apple está comparando la "CFBundleVersion" (es decir, la "Versión del paquete", no la "Cadena de versiones del paquete, corta"); no se confunda.
  4. Con frecuencia, la única solución viable es aumentar el número del frente (por ejemplo, el "2" en "2.4" - aumentarlo a "3")
  5. El número de versión que subes no está relacionado con el número de versión que aparece en iTunes; puedes poner lo que quieras allí y eso es lo que verán tus usuarios.
  6. ... excepto, si también informa el número de versión "real" dentro de su aplicación, el usuario verá el CFBundleVersion (generalmente, depende de cómo lo codifique), en lugar de la versión de iTunes (que, creo, no se puede acceder desde dentro de tu aplicación)

1
CFBundleVersion es lo que en xcode 4.5 se denomina "Compilación" y NO "Versión". La versión termina etiquetada como "CFBundleShortVersionString" en el archivo Info.plist. Entonces, de hecho, debe proporcionar un valor más alto para Build que antes.
RickJansen

+1 Útil. Usé 1.02para mi versión anterior. Y arréglelo usando esta respuesta. Gracias.
Praveenkumar

Esta respuesta debe agregarse en la FAQsección sobre cómo enviar una aplicación a la tienda de aplicaciones. :))
danypata

@Adam: Como he leído CFBundleShortVersionStringy el número de versión que proporcionaste en iTunes Connect debería coincidir. Eso significa que si muestra su número de versión en la aplicación que usa CFBundleShortVersionString. También se CFBundleVersiondebe aumentar y es el que Apple usa para determinar si está enviando una versión actualizada de su aplicación.
prueba

Apple ha redefinido recientemente lo que significan todas sus cadenas, de una manera NO compatible con versiones anteriores.
Adam

28

Actualice el número de compilación. El número de versión es importante, pero el número de compilación marca la diferencia. Por ejemplo, tenía mi versión inicial de una aplicación como:

version #: 1.0
build #:   1.0

Sin embargo, cuando intenté cargar la próxima versión, es decir

version #: 1.1
build #:   1.0

No aceptaría la carga. Simplemente aumentando el número de compilación a 1.1, se aceptó la carga.


Perfecto ... cambiando el número de compilación lo hice por mí, lo cual es genial ya que realmente quería mantener mi versión de paquete y la versión de iTunes sincronizadas.
Aaron Hayman

9

Xcode 4 pensará que desea volver a cargar la misma versión si no vuelve a archivar la aplicación. Incluso si cambia la versión del paquete y la reconstruye, la carga fallará. ¡Recuerde hacer un " Archivo " en el menú Producto!


7

Muchas de las respuestas aquí finalmente me ayudaron, pero no fue hasta que vi el número exacto de "versión" que Apple estaba comparando.

  1. Vaya a iTunes Connect -> Administre sus aplicaciones
  2. Elija la aplicación para la que desea verificar la versión anterior
  3. Haga clic en el botón azul etiquetado Ver detalles
  4. Haga clic en el enlace etiquetado Detalles binarios
  5. Encuentre el valor dado para la versión del paquete

Aunque pensé que había enviado el número de versión 1.0.1, el número real que Apple almacenó era 101. Algunos de los comentarios anteriores me hicieron creer que necesitaba cambiar mi versión a 2.0 (20) o 1.5 (15) o 1.2 (12 ) —Todos son menos de 101 como puede ver. Actualizar mi versión número 102 (sin los puntos) solucionó el problema.


6

Este artículo señala que el número de versión como se ve en la tienda de aplicaciones no es necesariamente el mismo que el número de versión del paquete. Cuando ve los detalles de su aplicación en iTunes, hay un enlace llamado 'Detalles binarios'. Esa página muestra la versión del paquete. Una de las aplicaciones en las que estaba trabajando estaba en la versión 1.0, pero su versión de paquete era 2.0. La carga de un paquete con la versión 1.1 falló, pero la 2.1 funcionó.

Entonces, hay una versión de la aplicación y una versión de paquete. Este problema tiene que ver con la versión del paquete.


5

Parece que la confusión se debe al formato del número. La versión del paquete no es decimal. Es una versión (o quizás una compilación) por lo que 1.11 es en realidad "un punto once". Por tanto, 1,11 es mayor que 1,2. Tuve éxito usando 1.20 en este caso.


4

Por lo general, esto puede deberse a la ausencia de un número de versión. Por lo tanto, agregue el número de versión en Identidad y también verifique el número de compilación.

ingrese la descripción de la imagen aquí

Sigue codificando ......... :)


3

Para mí (Xcode 4.5), cambiar el número de compilación resolvió el problema. establezca las versiones en 1.0.2 ... 2.0.2, etc. y luego aumente el número de compilación (Adam 3 puntos me da una idia dónde buscar).


2

Debería poder iniciar sesión en iTunes Connect y ver la versión actual de la aplicación (incluidas las que haya enviado pero que no estén activas). Verifique que no haya enviado previamente una versión con un número de versión mayor (o el mismo).


Esto es engañoso; Apple NO simplemente se compara con la versión de iTunesConnect. consulte la respuesta de Pieter a continuación para obtener una respuesta más precisa.
Adam

@Adam A partir de ahora (2014-05), Apple efectivamente compara el (los) número (s) de versión interna de su aplicación iOS con el número de versión de iTunesConnect. Si no coincide, recibe este mensaje de advertencia (no un error): Version Mismatch - Neither CFBundleVersion ['201405030503'] nor CFBundleShortVersionString ['201405030503'] in the Info.plist match the version of the app set in iTunes Connect ['1.0.0'].Pero esta comparación de iTunesConnect no es la causa del problema en esta Pregunta. La comparación de iTunesConnect es una mera advertencia, no un error que detiene el espectáculo.
Basil Bourque

2

Pasé algunas horas tratando de resolver este problema. Verifiqué con todas mis fuerzas para asegurarme de que CFBundleVersion era realmente más alta que la versión anterior, abriendo info.plist en un editor de texto, obtengo información del objetivo y leo la versión en las propiedades, le pedí a mi esposa que leyera la versión en iTunes para confirmar que no me afectó un Alzheimer anterior inesperado.

Al final, esto de alguna manera funcionó. Mi versión anterior era 1.0.4. Probé 1.3.5, 1.4.5, etc .; ninguno funcionó. Pero sorprendentemente, cuando entré en 2.0.0, a Application Loader le gusta lo que vio y lo cargó. ¿Se debe a un error en el cargador de aplicaciones?


2

En el resumen de objetivos al lado del número de versión en xcode4 es una compilación, comencé esto en 1, incremento cada vez que hago una carga binaria, esto resolvió el problema para mí


Este también era mi problema, ¡el mensaje de error es muy engañoso!
mj662

Yo también tuve este problema. Es increíblemente frustrante que el mensaje sea tan engañoso. Perdí la mayor parte de mi tarde. Gracias por la útil respuesta.
Joel Anair

2

Si el error informado es CFBundleVersion, la solución suele ser bastante fácil. Verifique / pruebe esto:

  1. Vaya al elemento del proyecto de nivel superior en el Navegador de proyectos y haga clic en él.
  2. En el panel que se encuentra a la derecha, haga clic en el destino de la aplicación.
  3. Haga clic en la pestaña de resumen.

En la pestaña de resumen verá que hay dos "versiones" diferentes que se pueden ajustar. El primero es el campo "Versión", que se utiliza en la pantalla predeterminada "Acerca de" para las aplicaciones de Mac. El de la derecha es la "Versión de compilación". ¡Este es el que realmente importa para las presentaciones de la App Store!


2

Sé que esta es una pregunta antigua, pero acabo de encontrarme con este problema. Lo resolví eliminando el proyecto del archivo y luego volviéndolo a archivar. Aparentemente, la versión anterior de la aplicación estaba ahí y estaba causando confusión.


2

Preste atención al mensaje de error.

El mensaje de error contiene el número de paquete anterior entre corchetes (por ejemplo, [9]).

Por lo tanto, debe aumentar ese número de paquete (por ejemplo, 9.1), aunque su nuevo número de versión es 1.2

Entonces, cuando actualice la versión 1.1 a 1.2 en iTunes Connect, debe establecer estos valores en su proyecto

Version number = 1.2
Bundle number = [previous bundle number]++

2
NOTA: si no está seguro de cuál era el número de paquete de la última versión cargada, haga clic en la versión anterior y busque Detalles binarios (en Enlaces). Debería ver "Versión del paquete: #"
Nathaniel Blumer

1

Tengo una versión de iPhone y iPad en mi proyecto, la lista de información para el ipad no estaba asociada con el producto del ipad por alguna razón. Verificar la membresía de Target y asociarla con el producto correcto resolvió este problema.



1

Cometí un error al intercambiar la 'Versión' y el 'Compilación' no.

En lugar de poner 2.3 en el campo Versión, lo puse en el número de compilación.


1

Así es como solucioné el problema (y supongo que este es el problema con mucha gente):

1) Haga clic en la pestaña general de la configuración de sus proyectos (a la que se puede acceder haciendo clic en el nombre de su proyecto, que se encuentra en la parte superior de todos los archivos de código).

2) Asegúrese de que el campo de compilación coincida con lo que puso en su plist para la clave "Bundle Version".

Este fue el problema para mí, por la razón que sea, no estaban sincronizados. Creo que cuando cambias la clave Bundler Version, se supone que se sincroniza (y viceversa). Pero no sucedió por alguna razón, podría ser un error.


1

Tuve el mismo problema y sucedió porque no he archivado y estaba usando el primer archivo que usé para la 1.0 pero con la 1.0.1. Así que seleccioné el dispositivo iOS, lo archivé y luego lo validé. Ta-daaa, ¡funcionó!


debería ser un comentario en lugar de una respuesta.
Hola mundo

0

Yo tuve el mismo problema. Básicamente, mi versión anterior era 1.12, quería cambiarla a 1.2 pero tenía el error mencionado. Probé 1.20 y funcionó perfecto


El segundo número debe estar entre 0 y 9, por lo que 12 es "demasiado grande"
JOM

1
El "segundo número" (déjame llamarlo número de versión menor , solo por diversión) puede ser cualquier número entero, no hay límites para él; por lo que 12o 20es el número de versión menor perfecto .
holex

0

Ningún conjunto de números de versión cada vez mayores funcionó mientras usaba el "Cargador de aplicaciones" de Apple para cargar mi archivo ipa, pero si usaba el "Organizador" de XCode (que se encuentra en el menú desplegable "Ventana" en la versión 3.2.5) , hizo clic en el botón "Validar ...", esperó a que me aprobara, luego haga clic en el botón "Enviar ...", todo salió como se esperaba con un número de versión sano (uno que es un incremento único por encima del que está actualmente disponible en la App Store).


0

en xcode 4.2 parece que no registre la versión del paquete si modifica desde el archivo info.plist. Configuré mi nueva versión de paquete directamente en la "información" del panel de xcode y ahora funciona.


0

Encontré otra solución.

Si selecciona su objetivo >> información >> actualice el ID del paquete.


0

Yo tuve el mismo problema. La primera versión enviada fue la 1.5.20 y quería actualizar a la 1.7.30.

Después de probar sin éxito las versiones 1.8, 2.0 y 3.0, actualicé mi CFBundleVersion a 10.0 y de repente funcionó.

No estoy seguro de cuál es la lógica detrás de este comportamiento, pero me hizo perder unos 2 días de trabajo.


0

Verifique su versión de paquete de la versión cargada anteriormente, debe proporcionar una versión de paquete superior en comparación con la versión de paquete de la versión ya cargada. La versión ya cargada se puede ver en itunesconnect / application / view details / binary details.


0

Pasé dos noches en un tema similar. Mi versión anterior era 1.02 e intenté validar con 1.2, 1.20, 1.1 y siempre recibía el mensaje binario no válido.

Lo resolví ingresando 2.0 como el número de versión, y funcionó . Sospecho que esto también es un error. No recibí este mensaje cuando actualicé recientemente mi juego de 1.0 a 1.1, pero eso fue con xcode 3. ¡Gracias por el consejo!


0

Tuve un problema similar y después de pasar media hora noté que estaba aumentando el número incorrecto. En lugar de aumentar Bundle version, estaba aumentando Bundleversions, string, shorten Info.plist. Busque "CFBundleVersion" en su proyecto usando CMD + Shift + F. Verá que necesita aumentar el número de CFBundleVersion.


0

Intente cambiar la versión = "1.1.1.0" a la versión = "1.1.1"


0

A finales de octubre, Apple requiere que los números de versión tengan menos de 4 dígitos (1.2.3 o 1.23 en lugar de 1.2.3.4 o 1.234). ¡Esto también se aplica a las bibliotecas!

Un grep rápido para el número de versión ofensivo en su directorio de proyecto debería mostrar la biblioteca ofensiva:

grep -r "1.2.3.4" .


0

Tenía una versión beta activa de TestFlight en ejecución. Compilación 2020 , versión 407

Envié una aplicación para revisión oficial de la App Store. Construya 2020 , versión 435, y fue aprobada. Simplemente está ahí, esperando a que lo publique en la App Store.

Sin agregar una historia paralela complicada, lo que quería hacer es darles a mis usuarios beta de TestFlight una versión actualizada para obtener una vista previa de la versión oficial de la App Store durante unos días, antes de poner en marcha la versión de la App Store. ¿Porque preguntas? Debido a que estaban obteniendo funciones gratuitas, estaban a punto de costar dinero una vez que la aplicación estuviera disponible.

Entonces, envié la Build 2020 , versión 436, a TestFlight y fue rechazada.

Fue rechazado porque tengo un candidato oficial de App Store aprobado con el mismo número de compilación

Solución: cambie el número de compilación de su versión de TestFlight. Presenté Build 20200 (he añadido un cero) versión 436 a TestFlight, y fue aprobado. No se preocupe, aún puede enviar esta compilación al mismo grupo beta de TestFlight, siempre que siga usando el mismo BundleID.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.