CFBundleVersion должен быть выше, чем предыдущая версия
Я отправляю обновление в одно из моих приложений. Я делал это десятки раз со многими различными приложениями, которые я разработал, но этот не работает по какой-то странной причине. Я архивирую свое приложение, а затем попытаюсь проверить архив и получить следующее сообщение об ошибке:
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 из приложения в комплекте с архивом:
<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... но он жалуется, что номер неверен.
Что мне не хватает?
Ответы
Ответ 1
Оказывается, у меня возникла некоторая проблема в моем исходном представлении, из-за которого видимая пользователем версия была "1.0", а внутренняя версия пакета - "1.2". Поэтому я изменил свою новую версию на 1.3 и 1.3, и работа была выполнена.
![enter image description here]()
Ответ 2
FYI. Apple думает 1.11 > 1.2, поэтому, если вы собираетесь с 1.11 до 1.2, вам нужно пройти весь путь до 1.20.
Enjoy.
Ответ 3
То же самое случилось со мной. Моя текущая версия App Store была 2.03. Я попытался загрузить 2.1. Все, что мне нужно было сделать, это изменить его на 2.10, и это сработало.
Ответ 4
Увеличение значения CFBundleShortVersionString или "Bundle version string, short" выполнило задание для меня.
Ответ 5
Вот как я исправил проблему (и я предполагаю, что это проблема с большим количеством людей):
1) Нажмите на общую вкладку настроек ваших проектов (к которым можно получить доступ, нажав на название вашего проекта, которое находится в верхней части всех файлов кода).
2) Убедитесь, что поле сборки соответствует тому, что вы положили в свой plist для ключа "Bundle Version".
Это была проблема для меня, по какой-то причине они были не в синхронизации. Я думаю, что когда вы меняете ключ версии Bundler, он должен синхронизировать (и наоборот). Но по какой-то причине этого не произошло - может быть, ошибка.
Ответ 6
Это может быть вызвано по другой причине.
У меня была активная бета-версия TestFlight. Build 2020, версия 407
Я отправил приложение для официального обзора App Store. Build 2020, версия 435, и она была одобрена. Он просто сидит там, ожидая, когда я заставлю его жить в App Store.
Не добавляя сложную боковую историю, я хотел бы сделать, чтобы мои бета-версии TestFlight обновили версию для предварительного просмотра официальной версии App Store в течение нескольких дней, прежде чем сделать версию App Store вживую. Почему ты спрашиваешь? Поскольку они получали бесплатные функции, стоило бы денег, как только приложение выйдет вживую.
Итак, я отправил Build 2020, версия 436, в TestFlight, и он был отклонен.
Отказано, потому что у меня есть одобренный официальный кандидат в App Store, имеющий тот же номер сборки
Решение. Измените номер сборки вашей версии TestFlight. Я отправил в TestFlight Build 20200 (добавил лишний ноль) версию 436, и она была одобрена. Не волнуйтесь, вы все равно можете нажать эту сборку в одну и ту же тестовую группу TestFlight, если вы все еще используете тот же BundleID.