web-dev-qa-db-fra.com

CFBundleVersion doit être supérieur à la version précédente

Je soumets une mise à jour de l'une de mes applications. Je l'ai fait des dizaines de fois avec les nombreuses applications différentes que j'ai développées, mais celle-ci échoue pour une raison étrange. J'archive mon application, puis tente de valider l'archive et reçois le message d'erreur suivant:

This bundle is invalid. The key CFBundleVersion in the Info.plist file must 
contain a higher version than that of the previously uploaded version.

iTunesConnect montre que cette application est actuellement à 1.0 et que je l'ai configurée pour être prête à télécharger la version 1.1 (capture d'écran avec les icônes d'application expurgées):

iTunes Connect Screenshot

Voici une capture d'écran des informations de résumé de la cible de mon application, qui montre que la version et la version courte sont à la fois "1.1":

enter image description here

Voici la moitié supérieure de l'Info.plist de Bundle Archive:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

Et voici le morceau pertinent de Info.plist depuis l'application dans le bundle Archive:

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

Tous les numéros de version de mon application mise à jour disent 1.1, iTunesConnect dit qu'il attend 1.1 ... mais il se plaint que le numéro est faux.

Qu'est-ce que je rate?

33
Kenny Wyland

Il est apparu que j'avais rencontré un problème dans ma soumission initiale, ce qui faisait que la version visible par l'utilisateur était "1.0" mais que la version interne du paquet était "1.2". J'ai donc changé ma nouvelle version en 1.3 et 1.3 et la soumission a fonctionné.

enter image description here

50
Kenny Wyland

FYI. Apple pense que 1.11> 1.2, donc si vous passez de 1.11 à 1.2, vous devez aller jusqu'à 1.20.

Prendre plaisir.

47
Michael Wilson

Il m'est arrivé la même chose. Ma version actuelle de l'App Store était 2.03 . J'ai essayé de télécharger 2.1 . Tout ce que j'avais à faire était de le changer en 2.10 et cela fonctionnait.

24
John MacAdam

L'augmentation de la valeur CFBundleShortVersionString ou "Chaîne de versions d'ensembles, courte" a été effectuée pour moi. 

5
Ammar Mujeeb

Voici comment j'ai résolu le problème (et j'imagine que c'est le problème que rencontrent beaucoup de gens):

1) Cliquez sur l'onglet général des paramètres de votre projet (auquel vous pouvez accéder en cliquant sur le nom de votre projet qui se trouve en haut de tous les fichiers de code).

2) Assurez-vous que le champ de construction correspond à ce que vous avez mis dans votre plist pour la clé "Bundle Version". 

C'était le problème pour moi, quelle que soit la raison pour laquelle ils n'étaient pas synchronisés. Je pense que lorsque vous modifiez la clé de version de Bundler, elle est censée se synchroniser (et inversement). Mais cela n’est pas arrivé pour une raison quelconque - cela pourrait être un bug.

3
Ser Pounce

Une des raisons pourrait être la situation suivante: Vous avez envoyé à AppStore version 1.0 avec le numéro de build 50 . Vous avez décidé de le donner aux utilisateurs de TestFlight pour le tester. Et simultanément décidé d'envoyer cette version pour révision à l'AppStore. Les utilisateurs commencent à le tester et tout va bien. Quelque temps plus tard, l’AppStore l’approuve, mais il n’est pas publié (il a le statut de développeur). Après que vous ayez apporté quelques modifications et que vous vouliez donner à vos utilisateurs de Testflight une nouvelle version. Vous décidez de porter le numéro de build à 51 et de conserver le numéro de version à 1.0. Vous obtiendrez l'erreur que vous avez décrite dans votre question dans cette affaire. Vous devez également augmenter la version de l'application.

1
swift2geek

Mon problème était que j'ai essayé de 1.9.12 à 1.9.2 ... si vous y réfléchissez, 1.9.2 est en fait 1.9.02, donc si vous définissez 1.9.20 cela résoudrait le problème.

1

Cela peut être causé pour une autre raison tout à fait. 

J'avais une version bêta active de TestFlight. Build 2020 , version 407

J'ai soumis une application pour official examen App Store. Build 2020 , version 435, et il a été approuvé. Il est juste assis là, attendant que je le pousse en direct dans l'App Store.

Sans ajouter une histoire compliquée, je souhaitais donner à mes utilisateurs de la version bêta de TestFlight une version mise à jour leur permettant de prévisualiser la version officielle de l'App Store pendant quelques jours avant de la rendre live. Pourquoi demandes-tu? Comme ils bénéficiaient de fonctionnalités gratuites, il était sur le point de coûter de l'argent une fois l'application lancée.

J'ai donc soumis Build 2020 , version 436, à TestFlight, qui a été rejetée. 

Il a été rejeté car j'ai un candidat officiel approuvé sur l'App-Store portant le même numéro de build

Solution: modifiez le numéro de version de votre version de TestFlight. J'ai soumis Build 20200 (j'ai ajouté un zéro supplémentaire) version 436 à TestFlight, qui a été approuvée. Ne vous inquiétez pas, vous pouvez toujours envoyer cette version au même groupe bêta de TestFlight, tant que vous utilisez toujours le même BundleID. 

1
jungledev

Si les réponses ci-dessus ne résolvent pas votre problème, Assurez-vous que la version de Xcode doit être identique à celle que vous avez créée dans iTunes Connect.

Dans mon cas, sur iTunes Connect, la version était 1.38 mais la version était 1.3.8 dans Xcode . Une fois que j'ai changé de version pour 1.38 dans Xcode, le problème était résolu.

0
Ghulam Rasool