CFBundleVersion должен быть выше, чем предыдущая версия - PullRequest
34 голосов
/ 18 марта 2012

Я отправляю обновление в одно из моих приложений. Я делал это десятки раз со многими различными приложениями, которые я разработал, но это не получилось по какой-то странной причине. Я заархивировал свое приложение, затем попытался проверить архив и получил следующее сообщение об ошибке:

This bundle is invalid. The key CFBundleVersion in the Info.plist file must 
contain a higher version than that of the previously uploaded version.

iTunesConnect показывает, что это приложение в настоящее время имеет версию 1.0, и я настроил его для готовности загрузить версию 1.1 (снимок экрана с отредактированными значками приложений):

iTunes Connect Screenshot

Вот снимок экрана со сводной информацией о цели моего приложения, который показывает, что версия и короткая версия имеют значение «1.1»:

enter image description here

Вот верхняя половина Info.plist из архива Bundle:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

А вот соответствующий фрагмент Info.plist из приложения в комплекте Archive:

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

Все номера версий в моем обновленном приложении говорят о 1.1, iTunesConnect говорит, что ожидает 1.1 ... но жалуется, что номер неверный.

Что мне не хватает?

Ответы [ 9 ]

50 голосов
/ 18 марта 2012

Оказывается, у меня была некоторая проблема в исходном представлении, из-за которой видимая пользователем версия была "1.0", а внутренняя версия пакета - "1.2". Поэтому я изменил свою новую версию на 1.3 и 1.3, и отправка сработала.

enter image description here

49 голосов
/ 23 января 2013

FYI.Apple считает 1.11> 1.2, поэтому, если вы переходите с 1.11 на 1.2, вам нужно пройти весь путь до 1.20.

Наслаждайтесь.

24 голосов
/ 30 октября 2012

То же самое случилось со мной.Моя текущая версия App Store была 2.03 .Я попытался загрузить 2.1 .Все, что мне нужно было сделать, это изменить его на 2.10 , и это сработало.

5 голосов
/ 12 февраля 2013

Увеличение CFBundleShortVersionString или «Bundle version string, short» сделало работу за меня.

3 голосов
/ 19 марта 2014

Вот как я исправил проблему (и я предполагаю, что это проблема многих людей):

1) Перейдите на общую вкладку настроек ваших проектов (открыть ее можно, нажав на название вашего проекта, которое находится вверху всех файлов кода).

2) Убедитесь, что поле сборки совпадает с тем, что вы указали в листе для ключа «Bundle Version».

Это была проблема для меня, по какой-то причине они были не синхронизированы. Я думаю, что когда вы меняете ключ версии Bundler, он должен синхронизироваться (и наоборот). Но по какой-то причине этого не произошло - возможно, это ошибка.

2 голосов
/ 05 октября 2018

Моя проблема заключалась в том, что я пытался с 1.9.12 до 1.9.2 ... если вы думаете, что 1.9.2 на самом деле 1.9.02, поэтому если вы установите 1.9.20 , это решитпроблема.

2 голосов
/ 03 октября 2016

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

У меня была активная бета-версия TestFlight. Build 2020 , версия 407

Я отправил приложение для официального обзора App Store. Сборка 2020 , версия 435, и она была утверждена.Он просто сидит и ждет, когда я добавлю его в App Store.

Не добавляя сложную побочную историю, я хотел предоставить пользователям бета-версии TestFlight обновленную версию для предварительного просмотра официальной версии.Версия App Store в течение нескольких дней, прежде чем запустить версию App Store.Почему ты спрашиваешь?Поскольку они получали бесплатные функции, они должны были стоить денег, как только приложение заработало.

Итак, я отправил Build 2020 , версия 436, в TestFlight, и он был отклонен.

Он был отклонен, потому что у меня есть утвержденный официальный кандидат App-Store с тем же номером сборки

Решение. Измените номер сборки своей версии TestFlight.Я отправил Build 20200 (я добавил дополнительный ноль) версию 436 в TestFlight, и она была одобрена.Не волнуйтесь, вы все равно можете отправить эту сборку в ту же бета-группу TestFlight, если вы все еще используете тот же BundleID.

1 голос
/ 01 мая 2018

Одной из причин может быть следующая ситуация: Вы отправили в AppStore версию 1.0 с номером сборки 50. Вы решили передать его пользователям TestFlight для тестирования. И одновременно решил отправить эту версию на рассмотрение в AppStore. Пользователи начинают его тестировать и все нормально. Некоторое время спустя AppStore одобряет его, а не выпускает (имеет статус разработчика). После того, как вы внесли некоторые изменения и хотите предоставить пользователям Testflight новую версию. Вы решили увеличить номер сборки до 51 и сохранить номер версии на 1.0. В этом случае вы получите ту ошибку, которую вы описали в своем вопросе. Вы также должны увеличить версию приложения.

0 голосов
/ 15 апреля 2018

Если приведенные выше ответы не решают вашу проблему, Пожалуйста, убедитесь, что версия в XCode должна совпадать с версией, которую вы создали в Itunes Connect.На ITunes Connect версия была 1.38, но версия была 1.3.8 в Xcode.Как только я изменил версию на 1.38 в XCode, проблема была решена.

...