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.

Adam H
fuente
¿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)
Adán
fuente
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.

El chimpancé loco
fuente
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!

Patrice Gagnon
fuente
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.

Kyle Hayes
fuente
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.

Pieter Witvoet
fuente
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.

Gavin
fuente
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 ......... :)

Krishna Raj Salim
fuente
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).

setdvd
fuente
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).

Danny Tuppeny
fuente
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?

Wayne Lo
fuente
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í

hacha
fuente
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!

David Hoelzer
fuente
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.

Henry F
fuente
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]++
Serge Seletskyy
fuente
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.

Jay Adams
fuente
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.

Pritesh Desai
fuente
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.

Ser Pounce
fuente
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ó!

Gonzo345
fuente
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

mukaissi
fuente
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).

ideasuns
fuente
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.

Marco Allori
fuente
0

Encontré otra solución.

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

Miguel
fuente
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.

BastiBen
fuente
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.

Vishnu R Kaimal
fuente
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!

chico de la máquina
fuente
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.

Josip B.
fuente
0

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

RouR
fuente
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" .

Deformación
fuente
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.

jungledev
fuente