O documento da Apple poderia ter sido mais claro sobre como enviar uma versão de atualização.
Conforme perguntado no título, qual é a diferença entre
- número da versão no iTunes Connect (que você deve fornecer ao enviar uma atualização)
- versão do pacote em xcode
- string de versões do pacote, curto
Eles estão relacionados de alguma forma?
Respostas:
Sim, eles estão relacionados. Todos eles se referem à versão do seu aplicativo.
iTunes Connect
Este é o número da versão mostrado na App Store; Deve ser um número de versão puro, como
1.2.3
Versão do pacote (CFBundleVersion)
Não precisa ser um número de versão puro. Isso pode ser algo como
12345
ou1.2.3 (Build 12345AB)
. Isso é mostrado na janela Sobre para aplicativos Mac OS X, por exemplo, e geralmente é mais um "Número da versão" do que um "Número da versão".String da versão do pacote (CFBundleShortVersionString) Este valor é usado como o número da versão "real". Esta deve ser a mesma seqüência como usado para a versão no iTunes Connect .
Atualização:
Como apontado por @snlehton, o CFBundleVersion deve ser um número de versão puro, como
1.2.3
quando você deseja fazer upload de seu aplicativo para a App Store (iOS).fonte
1.2.3
e, em seguida, incrementa a versão do pacote para cada construção.Sim, eles estão relacionados, mas sua definição depende de como eles são usados.
Sempre deve ser um número de versão, por exemplo, 1.0
Modo de uso 1 - Apenas CFBundleVersion é definido
Deve ser um número de versão, por exemplo, 1.0. Deve corresponder à versão do iTunes Connect.
Modo de uso 2 - CFBundleVersion e CFBundleShortVersionString estão definidos
Deve ser um número de construção, por exemplo, um único inteiro como 435163.
Deve ser um número de versão, por exemplo, 1.0. Deve corresponder à versão do iTunes Connect.
O modo de uso 2 é a melhor opção. Aqui estão alguns números de exemplo para o caminho de atualização de um aplicativo:
Uma observação extra sobre os números de versão: Se você enviar uma pequena atualização (por exemplo, correção de bug) para seu aplicativo, você nunca deve perder períodos no número da versão, por exemplo, sempre use 1.0.1 e NUNCA 1.01 ou você corre o risco de não ser capaz de usar certos números de versão no futuro porque não será possível incrementá-los.
fonte
Sim, todos eles estão relacionados.
O número da versão no itunesconnect é o número da versão que você precisa fornecer. Por exemplo, 2.1.1 ou 3.1.2 etc. Isso também deve ser igual a CFBundleShortVersionString .
A versão do pacote no Xcode ( CFBundleVersion ) representa apenas o número da compilação que identifica uma iteração (liberada ou não) do aplicativo.
Sequência de versões de pacote, curta ( CFBundleShortVersionString ) é um número composto por três inteiros separados por pontos. O primeiro representa quaisquer atualizações importantes do aplicativo, como atualizações que implementam novos recursos ou mudanças importantes. O segundo inteiro denota revisões que implementam recursos menos proeminentes. O terceiro inteiro representa versões de manutenção.
fonte
Tenha cuidado com CFBundleVersion . Não é apenas um número de construção de produção. Este valor é verificado pela Apple durante o processo de upload binário e pode falhar.
Certifique-se de definir CFBundleVersion com o valor de CFBundleShortVersionString ao construir sua liberação para envio.
Veja esta postagem sobre isso
fonte
CFBundleVersion
não precisa ser igualCFBundleShortVersionString
. Por exemplo, se você olhar o arquivo .ipa atual do Chrome (na app store agora), eles têm "34.0.1847.18" paraCFBundleVersion
e "34.1847.18" paraCFBundleShortVersionString
.A resposta aceita é o caminho a percorrer - apenas adicionando isso como um exemplo.
Para nosso último lançamento, o "Bundle Version String, short" foi necessário, e fui em frente e combinei com o número da versão do Bundle (1.2.8 para nosso aplicativo).
Em seguida, habilitei o Testflight e disponibilizei a versão pendente da revisão da Apple (1.2.8) para nossos testadores internos. No entanto, um testador encontrou um problema que precisava ser corrigido e excluímos o binário no local. Ao fazer upload de uma nova compilação, recebemos um erro indicando que a versão da compilação já foi enviada.
Depois de ler alguns links do SO e documentos da Apple, meu entendimento foi fazer a versão do pacote: 1.2.8.001, mantendo a versão do pacote curta do jeito que estava. Se uma nova compilação for necessária, incrementamos a versão do pacote para 1.2.8.002.
Observação: o upload foi aceito e a compilação aparece como "1.2.8.001" no pré-lançamento. O número da versão permanece 1.2.8.
fonte
A resposta aceita neste link contém bons detalhes: Quais versões / números de compilação do aplicativo iOS DEVEM ser incrementados após o lançamento da App Store?
Da apple docs
CFBundleVersion (versão Bundle)
CFBundleVersion (String - iOS, OS X) especifica o número da versão da compilação do pacote, que identifica uma iteração (lançada ou não) do pacote. O número da versão do build deve ser uma string composta por três inteiros não negativos separados por ponto, sendo o primeiro inteiro maior que zero. A string deve conter apenas caracteres numéricos (0-9) e ponto (.). Os zeros à esquerda são truncados de cada número inteiro e serão ignorados (ou seja, 1.02.3 é equivalente a 1.2.3). Esta chave não é localizável.
CFBundleShortVersionString (string de versões do pacote, curta)
CFBundleShortVersionString (String - iOS, OS X) especifica o número da versão de lançamento do pacote, que identifica uma iteração lançada do aplicativo. O número da versão de lançamento é uma string composta por três inteiros separados por pontos. O primeiro inteiro representa as principais revisões do aplicativo, como revisões que implementam novos recursos ou mudanças importantes. O segundo inteiro denota revisões que implementam recursos menos proeminentes. O terceiro inteiro representa versões de manutenção.
O valor dessa chave difere do valor de CFBundleVersion, que identifica uma iteração (lançada ou não) do aplicativo. Essa chave pode ser localizada incluindo-a em seus arquivos InfoPlist.strings.
fonte