2015-10-22 3 views
7

У меня действительно возникла проблема с загрузкой моей сборки в itunes connect. Я всегда получаю следующее сообщение об ошибкеCFBundleVersion должен быть разделен на период списка

enter image description here

Моих общих настроек проекта выглядит как этого

enter image description here

Я также использую cocoapods в моем проекте, но никогда не получил эту ошибку раньше, и я уже выгрузили пару сборок. Я не знаю, откуда это странное число [1443188838-89].

Также на вкладке информация версия пакет выглядит хорошо для меня

enter image description here

Как также info.plist как исходный код выглядит хорошо

enter image description here

Любая помощь очень ценится ,

+0

Если вы посмотрите на вкладке «Информация» вместо «Общие», вы видите что-нибудь странное для строки «Строка, короткая» строка или любые другие записи? –

+0

Нажмите на поле, Cmd + a, delete. введите его снова. – sbonami

+0

обновили мой вопрос со скриншотами, по-прежнему ту же ошибку – gpichler

ответ

3

Хорошо, поэтому, потратив много времени на эту проблему, я, наконец, смог ее решить.

Проверьте все ваши файлы Info.plist, если в их числе CFBundleVersion. Пройдите все ваши Cocoapods и статические рамки и их пакеты (щелкните правой кнопкой мыши - показать содержимое пакета). В моем случае это был неправильный ключ CFBundleVersion в каркасе и пакете Netverify (Jumio). (так же, как показано в сообщении об ошибке).

Я только что изменил его на действующий ключ, например 1.0.0, и теперь он работает!

0

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

Я использовал фреймворки Cocoapods с Swift и выполнил поиск по моему проекту и обнаружил, что в Info.plist RxSwift установлена ​​строка версии, равная '2.0.0-alpha'. К счастью, я не стал его использовать, поэтому я смог удалить пакет и успешно отправить без проблем. Вы должны иметь возможность модифицировать строку версии для нарушителя, чтобы ваша передача проходила (хотя это, очевидно, не идеально).

Я не знаю, является ли это ошибкой в ​​сервисах Apple или новой политике, но в любом случае это болезненно.

+0

Я прошел через все info.plist файлы в стручках папку и, кажется, что почти каждый стручок использует ' CFBundleVersion $ {} CURRENT_PROJECT_VERSION' установить CFBundleVersion – gpichler

3

Вы правы, проблема заключается не в числовых версиях 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 
0

Решение для меня было обновить стручок SVWebViewController в Podfile:

от

pod SVWebViewController, :HEAD 

//Info.plist 
<key>CFBundleShortVersionString</key> 
<string>HEAD 1.0</string> 

до

pod SVWebViewController 

//Info.plist 
<key>CFBundleShortVersionString</key> 
<string>1.0</string> 

Это обновление внесло изменения в файл Info.plist для данного контейнера. Спасибо за подсказку user1463853.

Смежные вопросы