Коротко. В App Store Connect нет кнопки «вернуться к предыдущей версии». Номера версий идут только вперёд, и нельзя снова сделать старую сборку текущей карточкой. Ближайший аналог — Last-Compatible Version Settings в разделе Pricing and Availability — управляет только тем, какие старые сборки остаются доступны для установки пользователям со старыми версиями iOS, и не откатывает то, что видят новые или уже обновившиеся пользователи. Если вышло плохое обновление, реальные рычаги — это поставить на паузу уже запущенный Phased Release и отправить исправленную версию, при необходимости запросив Expedited Review.
Выходит плохое обновление, начинают сыпаться отчёты о крашах, и первый инстинкт — искать кнопку отката. В App Store Connect её нет. Если знать это заранее, не придётся терять десять минут на поиски по разделу Pricing and Availability в тот момент, когда пользователи уже столкнулись с проблемой.
Можно ли откатиться к предыдущей версии в App Store?
Нет. Собственная справка Apple по App Store Connect говорит об этом прямо: если у живой версии есть юридическая проблема или проблема с юзабилити, «нужно отправить обновление приложения» — механизма повторно опубликовать старую сборку как текущую карточку не существует. Номера версий должны только расти; выбрать более раннюю сборку и снова сделать её текущей нельзя.
Это значит, что исправление плохого обновления — всегда новая версия с более высоким номером, а не шаг назад. При этом новая версия наследует существующие метаданные (ключевые слова, подзаголовок, описание) как отправную точку при создании, так что пересобирать карточку с нуля не нужно — вперёд нужно двигать только саму сборку.
Что на самом деле делает настройка Last-Compatible Version?
Это не откат. Last-Compatible Version Settings, внизу страницы Pricing and Availability, определяет, какие из одобренных старых сборок остаются доступны для установки пользователям с версией iOS, слишком старой для текущего релиза, — и не меняет то, что видят пользователи с актуальной iOS или уже обновившиеся пользователи.
Конкретно это выглядит так: Pricing and Availability → Last-Compatible Version Settings → выбрать версию, и можно снять отметку с конкретных старых сборок, чтобы они вообще перестали предлагаться, либо оставить одну доступной, чтобы пользователь со старой iOS получил эту совместимую сборку вместо невозможности установить приложение вообще. В этом списке появляются только версии, которые действительно отправлялись в App Store. Нужная роль — Account Holder, Admin или App Manager — у Marketing доступа к этой странице нет, точно так же как к полю ключевых слов и подзаголовку (см. наш гид по ролям в App Store Connect).
Есть два момента, которые эта настройка не делает: она не принудительно обновляет и не откатывает версию на устройстве, где уже установлена текущая версия, и не влияет на то, что получают новые пользователи с актуальной iOS — они всегда получают вашу последнюю живую версию.
Что реально делать, когда вышло плохое обновление
- Если вы выпустили обновление с ещё запущенным Phased Release, сначала поставьте его на паузу. Phased Release раскатывается на 1% пользователей в первый день и растёт по фиксированному 7-дневному расписанию; пауза останавливает дальнейший рост процента, пока вы готовите исправление. Она не отменяет обновление для тех, кто его уже получил. Полный механизм — расписание по процентам и лимит в 30 суммарных дней паузы — разобран в нашем гиде по Phased Release.
- Подготовьте исправленную сборку как новую версию. Увеличьте номер версии, исправьте проблему и отправьте повторно. Поле ключевых слов, подзаголовок и описание переносятся автоматически — вы не начинаете карточку заново, вперёд нужно двигать только бинарник.
- Если баг критичный, запросите Expedited Review. На странице App Review Apple можно запросить ускоренную проверку при исключительных обстоятельствах, например при исправлении критического бага, приложив шаги воспроизведения проблемы на текущей живой версии. Это не гарантия — Apple сама решает, одобрить запрос или нет, — но при краше на запуске это самый быстрый способ вернуться в очередь на проверку. Учтите: это ускоряет только саму проверку и не меняет момент, когда исправление станет живым после одобрения, — это по-прежнему зависит от выбранного release option (автоматический, ручной или по расписанию).
- Если ситуация настолько серьёзная, что ни один из вариантов не успевает достаточно быстро, снимите приложение с продажи. Это полностью останавливает новые загрузки до тех пор, пока вы не будете готовы к повторной отправке, — крайняя мера, а не первый шаг, поскольку она заодно останавливает и легитимные новые установки.
Ничто из этого не затрагивает поле ключевых слов, подзаголовок или ранжирование — плохая сборка и плохая карточка это две разные проблемы с двумя разными решениями, и если их смешать, вы тратите время, которого во время инцидента и так не хватает.