CFBundleVersion doit être une list séparée par des nombres d'au plus trois entiers non négatifs (WARNING ITMS-9000)

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

entrez la description de l'image ici

AVERTISSEMENT ITMS-9000: "Ce package n'est pas valide La valeur de la key CFBundleVersion [3.3.9.2014.08.20] dans le file info.plist doit être une list séparée par des nombres 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 formatting.

Quelque chose a changé concernant CFBundleVersion?

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

À partir des documents Apple :

CFBundleVersion

CFBundleVersion (Ssortingng – iOS, OS X) spécifie le numéro de version de construction de l'set, qui identifie une itération (libérée ou non publiée) de l'set. Le numéro de version de construction doit être une string composée de trois entiers non négatifs, séparés par des périodes, le premier entier étant supérieur à zéro. La string ne doit contenir que des caractères numériques (0-9) et des points (.). Les zéros en tête sont tronqués à partir de chaque entier et seront ignorés (c'est-à-dire que 1.02.3 est équivalent à 1.2.3). Cette key n'est pas localisable.

Modifier:

Apparemment, CFBundleVersion a été changé comme vous pouvez le voir ici . Il est dommage que je doive chercher WayBackMachine pour quelque chose comme ça tandis que "Document Revision History" d'Apple ne dit rien à ce sujet.

    C'est arrivé à un framework que j'utilisais depuis Cocoapods, voici comment je l'ai réparé:

    Vous devez find CFBundleShortVersionSsortingng non standard dans le file info.plist. J'ai cherché à travers chacun d'eux et l'ai trouvé dans l'un des repos:

    <key>CFBundleShortVersionSsortingng</key> <ssortingng>HEAD based on 1.0</ssortingng> 

    Changé à ceci:

      <key>CFBundleShortVersionSsortingng</key> <ssortingng>1.0</ssortingng> 

    et ça a marché

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

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

    On dirait qu'Apple a fait un pas de plus et a fait une erreur (je ne sais pas quand c'est arrivé, mais j'utilise Xcode 6). CFBundleShortVersionSsortingng de soumettre une application avec un CFBundleShortVersionSsortingng avec plus de deux points décimaux, l'envoi d'une archive à iTunes Connect échoue maintenant.

    Vous devez maintenant avoir un CFBundleShortVersionSsortingng comme 1.0 , 4.5.2 , etc. pour soumettre vos applications avec succès. Cela pourrait être un peu ennuyeux, mais je suppose que c'est logique.

    Erreur

    La meilleure pratique recommandée consiste maintenant à utiliser des valeurs séparées pour CFBundleShortVersionSsortingng et CFBundleVersion

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

    CFBundleShortVersionSsortingng est la version affichée sur l'App Store. Le CFBundleVersion devra changer pour chaque build que vous téléchargez.

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

    Si vous utilisez CocoaPods , ajoutez ce script à Podfile pour gérer les versions de bundle 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 CFBundleShortVersionSsortingng" "#{plist}"`.ssortingp 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 CFBundleShortVersionSsortingng #{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 

    Apparemment, CFBundleVersion a été changé comme vous pouvez le voir ici . Il est dommage que je doive chercher WayBackMachine pour quelque chose comme ça tandis que "Document Revision History" d'Apple ne dit rien à ce sujet.

    Suivez l'erreur, puis effectuez une search à la suite de CFBundleVersion, dans votre search de cas: 3.3.9.2014.08.20 puis changez la à la bonne version comme 3.3.9 ou 3.4.0, … (elle doit être supérieure à l'ancienne version)