web-dev-qa-db-fra.com

CFBundleVersion doit être une liste de trois entiers non négatifs au maximum séparés par des points (WARNING ITMS-9000)

Je reçois cet avertissement lorsque j'essaie de soumettre mon application:

enter image description here

AVERTISSEMENT ITMS-9000: "Cet ensemble n'est pas valide. La valeur de la clé CFBundleVersion [3.3.9.2014.08.20] int du fichier info.plist doit être une liste Séparée par des périodes d'au plus trois entiers non négatifs. "

C'est la première fois que je vois cela après de nombreuses soumissions avec ce format de gestion des versions.

Quelque chose a changé en ce qui concerne CFBundleVersion?

Je suppose que le trois n'était pas toujours là? ou Apple vient de nous avertir à ce sujet?

À partir de Documents Apple :

CFBundleVersion

CFBundleVersion (String - iOS, OS X) spécifie le numéro de version de la compilation, qui identifie une itération (publiée ou Inédite) de celle-ci. Le numéro de version de la version doit être une chaîne Composée de trois entiers non négatifs séparés par des points, le premier entier Étant supérieur à zéro. La chaîne ne doit contenir que Caractères numériques (0 à 9) et points (.). Les zéros au début sont tronqués De chaque entier et seront ignorés (c'est-à-dire que 1.02.3 est équivalent à À 1.2.3). Cette clé n'est pas localisable.

Modifier:

Apparemment, CFBundleVersion a été modifié comme vous pouvez le constater ici . Il est dommage que je doive chercher dans WayBackMachine quelque chose comme ça, alors que "l'historique des révisions de documents" d'Apple n'en dit rien.

18
Segev

Apparemment, CFBundleVersion a été modifié comme vous pouvez le constater ici . Il est dommage que je doive chercher dans WayBackMachine quelque chose comme ça, alors que "l'historique des révisions de documents" d'Apple n'en dit rien.

1
Segev

Ceci est arrivé à un framework que j'utilisais de Cocoapods, voici comment je l'ai corrigé:

Vous devez rechercher CFBundleShortVersionString non standard dans le fichier info.plist. J'ai fouillé dans chacun d'eux et trouvé ceci dans l'un des dépôts:

  <key>CFBundleShortVersionString</key>
  <string>HEAD based on 1.0</string>

Changé pour ceci:

  <key>CFBundleShortVersionString</key>
  <string>1.0</string>

et cela a fonctionné

Cette méthode, créée par les développeurs de Cocoapods, fonctionne également:

https://github.com/Jonge/Cocoapods-frameworks-version-number-fix

11
Esqarrouth

Il semblerait qu'Apple a franchi une étape supplémentaire en faisant une erreur (je ne sais pas quand cela s'est produit, mais j'utilise Xcode 6). Si vous tentez de soumettre une application avec une variable CFBundleShortVersionString avec plus de 2 points décimaux, l'envoi d'une archive à iTunes Connect échouera.

Vous devez maintenant devez disposer d'une CFBundleShortVersionString telle que 1.0, 4.5.2, etc. pour soumettre vos demandes avec succès. Cela pourrait être un peu agaçant, mais je suppose que cela a du sens.

Error

6
rebello95

La meilleure pratique recommandée consiste à utiliser maintenant des valeurs distinctes pour CFBundleShortVersionString et CFBundleVersion

  • 3 composants max pour CFBundleShortVersionString (ex: 4.2.3)
  • Un numéro de build CFBundleVersion

La CFBundleShortVersionString est la version affichée sur l'App Store. La CFBundleVersion devra être modifiée pour chaque version que vous avez téléchargée.

Ex: si vous téléchargez une nouvelle version (4.2.3) pour révision sur iTunesConnect et si elle est rejetée. Vous devrez soumettre à nouveau une nouvelle version pour le même numéro de version (CFBundleShortVersionString = 4.2.3) avec une valeur CFBundleVersion différente.

5
Erwan

Si vous utilisez CocoaPods, ajoutez ce script à Podfile pour gérer les versions d'ensembles non numériques:

# fix for non numeric CocoaPods versions
# https://github.com/CocoaPods/CocoaPods/issues/4421#issuecomment-151804311
post_install do |installer|
  plist_buddy = "/usr/libexec/PlistBuddy"
  installer.pods_project.targets.each do |target|
    plist = "Pods/Target Support Files/#{target}/Info.plist"
    original_version = `#{plist_buddy} -c "Print CFBundleShortVersionString" "#{plist}"`.strip
    changed_version = original_version[/(\d+\.){1,2}(\d+)?/]
    unless original_version == changed_version
      puts "Fix version of Pod #{target}: #{original_version} => #{changed_version}"
      `#{plist_buddy} -c "Set CFBundleShortVersionString #{changed_version}" "Pods/Target Support Files/#{target}/Info.plist"`
    end
  end
end

Exemple de sortie pour ReactiveCocoa 4:

Installing ReactiveCocoa (4.0.4-alpha-1)
(...)
Fix version of Pod ReactiveCocoa: 4.0.4-alpha-1 => 4.0.4
2
KlimczakM

Suivez l'erreur, puis recherchez en suivant la CFBundleVersion, dans votre recherche de cas: 3.3.9.2014.08.20, puis remplacez-la par la version correcte, telle que 3.3.9 ou 3.4.0,… (elle doit être supérieure à l'ancienne version).

0
lee

Je devenais le même problème car-

Blockquote

ERREUR ITMS-90058: "Cet ensemble n'est pas valide. La valeur de la clé CFBundleVersion [ms-08-23] dans le fichier Info.plist doit être une liste séparée par des points d'au plus trois entiers non négatifs."

Blockquote

Après que je suis allé et ai cherché avec chaque Plist framework tiers et dans les bibliothèques SAP j'ai trouvé Version Bundle as [ms-08-23] . Je l'ai changé en un format de trois entier non négatif c'est-à-dire 3.0.0 , je l'ai changé dans chaque Framework de SAP - IT Worked .

0
iMinion