CFBundleVersion no erro de upload Info.plist


108

"O binário que você carregou é inválido. A chave CFBundleVersion no arquivo Info.plist deve conter uma versão superior à da versão carregada anteriormente."

Estou recebendo este erro quando começo a fazer o upload do meu aplicativo.

Eu configurei a versão atualizada para 1.2 no iTunes Connect e também atualizei o .plistarquivo para 1.2.

Não entendo por que estou recebendo esse erro. Qualquer ajuda seria apreciada. Obrigado.


Por que não tentar configurá-lo para, digamos, 1.2.1?
Nikita Rybak

Tentei muitas combinações. Nenhum funciona. Esse erro continua surgindo.
Adam H

1
E qual é a versão enviada anteriormente (conforme encontrada no Info.plist do aplicativo de envio atualmente)?
Costique

Você resolveu esse problema? O mesmo problema aconteceu comigo de repente. Isso é frustante.
Wayne Lo,

Acabei de receber um e-mail com este erro e descobri que uma das minhas compilações antigas, que estava travada no ITC como "em processamento" na semana anterior, foi finalmente processada. Quando travou pela primeira vez, reenviei outra compilação com um número de compilação incrementado, portanto, quando a mais antiga finalmente foi processada, o erro foi disparado.
blwinters

Respostas:


210

Há pelo menos um bug conhecido no servidor de upload da Apple que não foi corrigido por mais de 12 meses. Coisas a serem observadas:

  1. A Apple exclui todos os zeros à esquerda dentro do número da versão; ou seja, a "string inteira" NÃO é tratada como um número, em vez disso, os bits entre os pontos são tratados como números SEPARADOS. por exemplo, "1.02" é tratado pela Apple como "1.2". Portanto, para Apple, 1.02 é MAIOR QUE 1.1
  2. A Apple às vezes fica "confusa" e parece comparar seu aplicativo carregado com a versão de um aplicativo DIFERENTE que você carregou anteriormente. Aconteceu com muitas pessoas e eu mesma vi algumas vezes
  3. A Apple deve estar comparando o "CFBundleVersion" (ou seja, "Versão do pacote" e não a "string de versões do pacote, abreviada"); não se confunda.
  4. Freqüentemente, a única solução viável é aumentar o número da frente (por exemplo, o "2" em "2,4" - aumentá-lo para "3")
  5. O número da versão que você carrega não está relacionado ao número da versão que aparece no iTunes - você pode colocar o que quiser lá, e é isso que seus usuários verão
  6. ... exceto, se você também relatar o número da versão "real" dentro de seu aplicativo, o usuário verá o CFBundleVersion (geralmente, depende de como você o codifica), em vez da versão do iTunes (que - eu acho - não pode ser acessada de dentro do seu aplicativo)

1
CFBundleVersion é o que no xcode 4.5 é rotulado como "Build" e NÃO "Version"! A versão acaba sendo identificada como "CFBundleShortVersionString" no arquivo Info.plist. Portanto, você realmente precisa fornecer um valor mais alto para o Build do que antes.
RickJansen

1 Útil. Eu usei 1.02para minha versão anterior. E corrija usando esta resposta. Obrigado.
Praveenkumar

Essa resposta deve ser adicionada na FAQseção sobre como enviar um aplicativo para a app store. :))
danypata

@Adam: Conforme li, CFBundleShortVersionStringe o número da versão que você forneceu no iTunes Connect devem corresponder. Isso significa que se você mostrar o número da sua versão no aplicativo que você usa CFBundleShortVersionString. O CFBundleVersiontambém deve ser aumentado e é o que a Apple usa para determinar se você está enviando uma versão atualizada do seu aplicativo.
teste em

A Apple redefiniu recentemente o que todas as suas strings significam, de uma forma NÃO compatível com as versões anteriores.
Adam

28

Atualize o número da compilação. O número da versão é importante, mas o número da compilação faz toda a diferença. Por exemplo, eu tinha minha versão inicial de um aplicativo como:

version #: 1.0
build #:   1.0

No entanto, quando tentei fazer o upload da próxima versão, ou seja,

version #: 1.1
build #:   1.0

Não aceitaria o upload. Simplesmente incrementando o build # para 1.1 o upload foi aceito.


Perfeito ... mudar a construção # funcionou para mim, o que é ótimo, pois eu realmente queria manter minha versão do pacote e a versão do iTunes sincronizadas.
Aaron Hayman

9

O Xcode 4 pensará que você deseja reenviar a mesma versão se não re-arquivar o aplicativo. Mesmo se você alterar a versão do pacote e reconstruir, o upload falhará. Lembre-se de fazer um " Arquivo " no menu Produto!


7

Muitas das respostas aqui, em última análise, me ajudaram, mas não foi até que eu vi o número exato da "versão" que a Apple estava comparando.

  1. Vá para iTunes Connect -> Gerenciar seus aplicativos
  2. Escolha o aplicativo para o qual deseja verificar a versão anterior
  3. Clique no botão azul rotulado Ver Detalhes
  4. Clique no link denominado Detalhes Binários
  5. Encontre o valor fornecido para a versão do pacote

Embora eu achasse que tinha enviado a versão número 1.0.1, o número real que a Apple armazenou era 101. Alguns dos comentários acima me fizeram acreditar que eu precisava mudar minha versão para 2.0 (20) ou 1.5 (15) ou 1.2 (12 ) —Estes são menos de 101, como você pode ver. Atualizar minha versão número 102 (sem os pontos) corrigiu o problema.


6

Este artigo aponta que o número da versão conforme visto na app-store não é necessariamente o mesmo que o número da versão do pacote. Quando você visualiza os detalhes do seu aplicativo no iTunes, há um link chamado 'Detalhes binários'. Essa página mostra a versão do pacote. Um dos aplicativos em que eu estava trabalhando estava na versão 1.0, mas sua versão em pacote era 2.0. O upload de um pacote com a versão 1.1 falhou, mas 2.1 funcionou.

Portanto, há uma versão do aplicativo e uma versão do pacote. Esse problema tem a ver com a versão do pacote.


5

Parece que a confusão é causada pelo formato do número. A versão do pacote não é decimal. É uma versão (ou construção talvez), então 1.11 é na verdade "um vírgula onze". Portanto, 1,11 é maior que 1,2. Tive sucesso usando 1.20 neste caso.


4

Normalmente, isso pode ser causado devido à ausência do número da versão. Portanto, adicione o número da versão em Identidade e verifique também o número da versão.

insira a descrição da imagem aqui

Continue codificando ......... :)


3

Para mim (Xcode 4.5), alterar o número da compilação resolveu o problema. defina as versões para 1.0.2 ... 2.0.2 etc. e aumente o build # (Adam 3 point dê-me uma ideia onde procurar).


2

Você deve conseguir fazer login no iTunes Connect e ver a versão atual do aplicativo (incluindo as que você enviou, mas não está ao vivo). Certifique-se de que não enviou anteriormente uma versão com um número de versão superior (ou igual).


Isso é enganoso; A Apple NÃO se compara simplesmente à versão iTunesConnect. Consulte a resposta de Pieter abaixo para uma resposta mais precisa.
Adam

@Adam A partir de agora (2014-05), a Apple realmente compara os números da versão interna do seu aplicativo iOS com o número da versão iTunesConnect. Se houver incompatibilidade, você receberá esta mensagem de aviso (não é um erro): 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'].Mas essa comparação iTunesConnect não é a causa do problema nesta questão. A comparação iTunesConnect é um mero aviso, não um erro de interrupção da exibição.
Basil Bourque

2

Passei algumas horas tentando resolver esse problema. Eu verifiquei com todas as minhas forças para garantir que o CFBundleVersion era realmente superior à versão anterior, abrindo o info.plist em um editor de texto, obter informações do destino e ler a versão nas propriedades, pedi à minha esposa para ler a versão no iTunes para confirmar que não fui atingido por um Alzheimer anterior inesperado.

No final, isso de alguma forma funcionou. Minha versão mais antiga era 1.0.4. Tentei 1.3.5, 1.4.5 etc .; nenhum funcionou. Mas, surpreendentemente, quando entrei no 2.0.0, o Application Loader gostou do que viu e fez o upload. Isso é devido a um bug no Application Loader?


2

No resumo de destinos próximo ao número da versão em xcode4 está uma compilação, comecei em 1, eu incremento cada vez que faço um upload binário, isso resolveu o problema para mim


Esse era o meu problema também, a mensagem de erro é muito enganosa!
mj662

Eu também tive esse problema. É extremamente frustrante que a mensagem seja tão enganosa. Perdi a maior parte da minha tarde. Obrigado pela resposta útil.
Joel Anair

2

Se o erro relatado for o CFBundleVersion, a correção geralmente é muito fácil. Verifique / experimente isto:

  1. Vá para o item de projeto de nível superior no Navegador de Projetos e clique nele.
  2. No painel, clique com o botão direito no destino do aplicativo.
  3. Clique na guia de resumo.

Na guia de resumo, você verá que existem duas "versões" diferentes que podem ser ajustadas. O primeiro é o campo "Versão", que é usado na tela "Sobre" padrão para aplicativos Mac. O que está à direita é a "Versão Build". Este é o que realmente importa para os envios da App Store!


2

Sei que essa é uma pergunta antiga, mas acabei de me deparar com esse problema. Eu resolvi isso excluindo o projeto do arquivo e, em seguida, arquivando-o novamente. Aparentemente, a versão anterior do aplicativo estava lá e causando confusão.


2

Preste atenção à mensagem de erro.

A mensagem de erro contém o número do pacote anterior entre colchetes (por exemplo, [9]).

Portanto, você precisa incrementar esse número de pacote (por exemplo, 9.1), embora seu novo número de versão seja 1.2

Então, quando você atualiza a versão de 1.1 para 1.2 no iTunes Connect, você precisa definir esses valores em seu projeto

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

2
NOTA: se você não tem certeza de qual era o nº do pacote da última versão carregada, clique na versão mais antiga e procure por Detalhes Binários (em Links). Você deve ver "Versão do pacote: #"
Nathaniel Blumer

1

Eu tenho uma versão para iPhone e iPad em meu projeto, o infoplist do ipad não estava associado ao produto ipad por algum motivo. Verificar a associação do Target e associá-lo ao produto correto resolveu esse problema para mim.



1

Eu cometi um erro ao trocar a 'Versão' e o 'Construir' no.

Em vez de colocar 2.3 no campo Versão, coloquei no Build no.


1

Veja como resolvi o problema (e acho que esse é o problema de muitas pessoas):

1) Clique na guia geral das configurações do seu projeto (que pode ser acessada clicando no nome do seu projeto que está no topo de todos os arquivos de código).

2) Certifique-se de que o campo de construção corresponda ao que você colocou em sua plist para a chave "Versão do pacote".

Esse era o problema para mim, por algum motivo eles estavam fora de sincronia. Acho que quando você altera a chave da versão do Bundler, é suposto sincronizar (e vice-versa). Mas não aconteceu por qualquer motivo - pode ser um bug.


1

Tive o mesmo problema e aconteceu porque não arquivei e estava usando o primeiro arquivo que usei para o 1.0 mas com o 1.0.1. Então, selecionei o dispositivo iOS, arquivei e validei. Ta-daaa, funcionou!


deve ser um comentário em vez de uma resposta.
Hello World

0

Eu tive o mesmo problema. Basicamente, minha versão anterior era 1.12. Eu queria mudá-la para 1.2, mas tive o erro mencionado. Eu tentei 1.20 e funcionou perfeitamente


O segundo número deve estar entre 0 e 9, então 12 é "muito grande"
JOM

1
O "segundo número" (deixe-me chamá-lo de número da versão secundária , só por diversão) pode ser qualquer número inteiro, não há limites para ele; portanto, 12ou 20é um número de versão secundária perfeito .
holex

0

Nenhum conjunto de números de versão sempre crescentes funcionou enquanto eu estava usando o "Application Loader" da Apple para carregar meu arquivo ipa, mas se eu usasse o "Organizer" do XCode (encontrado no menu suspenso "Window" na versão 3.2.5) , cliquei no botão "Validar ...", esperei que ele me aprovasse, depois clique no botão "Enviar ...", tudo correu como esperado com um número de versão lógico (um que é um único incremento acima do que está atualmente disponível na loja de aplicativos).


0

no xcode 4.2 parece não registrar a versão do pacote se você modificar do arquivo info.plist. Eu configurei minha nova versão do pacote diretamente no painel "info" do xcode e agora funciona!


0

Encontrei outra solução.

Se você selecionar seu destino >> informações >> atualize o ID do pacote.


0

Eu tive o mesmo problema. A primeira versão enviada foi 1.5.20 e queria atualizar para 1.7.30.

Depois de tentar as versões 1.8, 2.0 e 3.0 sem sucesso, atualizei meu CFBundleVersion para 10.0 e de repente funcionou.

Não tenho certeza de qual é a lógica por trás desse comportamento, mas me fez perder cerca de 2 dias de trabalho.


0

Verifique sua versão do pacote da versão carregada anteriormente, você deve fornecer uma versão do pacote superior em comparação com a versão do pacote da versão já carregada. A versão já carregada pode ser vista por itunesconnect / aplicativo / ver detalhes / detalhes binários.


0

Passei duas noites em um assunto semelhante. Minha versão anterior era 1.02 e tentei validar com 1.2, 1.20, 1.1 e sempre recebi a mensagem binária inválida.

Resolvi inserindo 2.0 como o número da versão e funcionou . Suspeito que isso também seja um bug. Não recebi essa mensagem quando atualizei meu jogo recentemente de 1.0 para 1.1, mas foi com o xcode 3. Obrigado pela dica!


0

Tive problema semelhante e depois de passar meia hora notei que estava aumentando o número errado. Em vez de aumentar, Bundle versionfui aumentando Bundleversions, string, shortno Info.plist. Pesquise "CFBundleVersion" em seu projeto usando CMD + Shift + F. Você verá que precisa aumentar o número de CFBundleVersion.


0

Tente alterar a versão = "1.1.1.0" para a versão = "1.1.1"


0

No final de outubro, a Apple exige que os números de versão tenham menos de 4 dígitos (1.2.3 ou 1.23 em oposição a 1.2.3.4 ou 1.234). Isso também se aplica às bibliotecas!

Um grep rápido para o número da versão ofensiva no diretório do projeto deve ativar a biblioteca ofensiva:

grep -r "1.2.3.4" .


0

Eu tinha um testFlight beta ativo em execução. Build 2020 , versão 407

Enviei um aplicativo para análise oficial da App Store. Compile 2020 , versão 435, e foi aprovado. Ele está sentado lá, esperando que eu coloque-o ao vivo na App Store.

Sem adicionar uma história secundária complicada, o que eu queria fazer é dar aos meus usuários do TestFlight beta uma versão atualizada para ver a versão oficial da App Store por alguns dias, antes de colocar a versão da App Store no ar. Porque você pergunta? Como estavam obtendo recursos gratuitos, custaria dinheiro quando o aplicativo fosse lançado.

Então, eu enviei Build 2020 , versão 436, para TestFlight, e ele foi rejeitado.

Foi rejeitado porque eu tenho um candidato oficial da App-Store aprovado com o mesmo número de compilação

Solução: altere o número da compilação de sua versão do TestFlight. Enviei o Build 20200 (acrescentei um zero extra) versão 436 para o TestFlight e ele foi aprovado. Não se preocupe, você ainda pode enviar esta compilação para o mesmo grupo TestFlight beta, contanto que ainda esteja usando o mesmo BundleID.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.