Je reçois cet avertissement lorsque j'essaie de soumettre mon application:
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.
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.
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
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.
La meilleure pratique recommandée consiste à utiliser maintenant des valeurs distinctes pour CFBundleShortVersionString
et CFBundleVersion
CFBundleShortVersionString
(ex: 4.2.3)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.
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
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).
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 .