it-roy-ru.com

CFBundleVersion должен быть разделенным точками списком не более трех неотрицательных целых чисел (ПРЕДУПРЕЖДЕНИЕ ITMS-9000)

Я получаю это предупреждение при попытке отправить свое приложение:

enter image description here

ПРЕДУПРЕЖДЕНИЕ ITMS-9000: «Этот пакет недействителен. Значение ключа CFBundleVersion [3.3.9.2014.08.20] внутри файла info.plist должно быть списком, разделенным периодом .__, не более three non -отрицательные целые числа. "

Это первый раз, когда я вижу это после большого количества представлений с этим форматом версий.

Что-то изменилось в отношении CFBundleVersion?

Я предполагаю, что три не всегда были там? или Apple только начала нас об этом предупреждать?

Из Apple Docs :

CFBundleVersion

CFBundleVersion (String - iOS, OS X) указывает версию сборки номер пакета, который идентифицирует итерацию (освобожденную или невыпущенную) пакета. Номер версии сборки должен быть строкой состоит из трех неотрицательных целых чисел, разделенных точками, с первое целое число больше нуля. Строка должна содержать только числовые (0-9) и точки (.) символы. Ведущие нули усекаются из каждого целого числа и будет игнорироваться (то есть 1.02.3 эквивалентно до 1.2.3). Этот ключ не локализуем.

Правка:

Очевидно, что CFBundleVersion был изменен, как вы можете видеть здесь . Жаль, что мне нужно искать в WayBackMachine что-то подобное, в то время как «История редакций документов» Apple ничего не говорит об этом.

18
Segev

Очевидно, что CFBundleVersion был изменен, как вы можете видеть здесь . Жаль, что мне нужно искать в WayBackMachine что-то подобное, в то время как «История редакций документов» Apple ничего не говорит об этом.

1
Segev

Это произошло с фреймворком, который я использовал от Cocoapods, вот как я это исправил:

Вам нужно найти нестандартный CFBundleShortVersionString в файле info.plist. Я просмотрел их все и нашел это в одном из репозиториев:

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

Поменял это на это:

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

и это сработало

Этот метод, созданный разработчиками Cocoapods, также работает:

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

11
Esqarrouth

Похоже, Apple пошла дальше и сделала это ошибкой (не знаю, когда это произошло, но я использую Xcode 6). Попытка отправить приложение с CFBundleShortVersionString с более чем двумя десятичными точками приведет к сбою отправки архива в iTunes Connect.

Теперь вы должны иметь CFBundleShortVersionString, например 1.0, 4.5.2 и т.д., Чтобы успешно подавать заявки. Может быть немного раздражает, но я полагаю, это имеет смысл.

Error

6
rebello95

Рекомендуется использовать отдельные значения для CFBundleShortVersionString и CFBundleVersion.

  • 3-компонентный максимум для CFBundleShortVersionString (например: 4.2.3)
  • Номер сборки CFBundleVersion

CFBundleShortVersionString - это версия, показанная в App Store . CFBundleVersion нужно будет менять при каждой загрузке сборки.

Пример: если вы загружаете новую версию (4.2.3) для проверки на iTunesConnect и если она отклоняется. Вам нужно будет повторно отправить новую сборку для того же номера версии (CFBundleShortVersionString = 4.2.3) с другим значением CFBundleVersion

5
Erwan

Если вы используете CocoaPods, добавьте этот скрипт в Podfile для обработки нечисловых версий пакета:

# 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

Пример вывода для ReactiveCocoa 4:

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

Следуйте за ошибкой, затем ищите, следуя CFBundleVersion, в вашем случае найдите: 3.3.9.2014.08.20, затем измените его на правильную версию, например 3.3.9 или 3.4.0,… (она должна быть больше, чем старая версия)

0
lee

Я получил ту же проблему, как и

Blockquote

ОШИБКА ITMS-90058: «Этот пакет недействителен. Значение ключа CFBundleVersion [ms-08-23] в файле Info.plist должно быть списком с разделенными точками не более чем тремя неотрицательными целыми числами».

Blockquote

Там после того, как я пошел и искал в каждом стороннем фреймворке Plist и в библиотеках SAP, я нашел версия пакета as [ms-08-23] . Я изменил его на формат трех не отрицательное целое число то есть 3.0.0 , я менял его в каждой структуре SAP -IT Worked.

0
iMinion