Откат сборки, которая вызывает проблемы

Редактировать на GitHub

App Store изначально не допускает откатов, поэтому в этом разделе описывается, как добиться аналогичных результатов, используя доступные способы.

Поэтапные релизы

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

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

Рекомендуется: версия Bump & Release

Как и в случае поэтапных выпусков, сборки App Store и TestFlight можно обновлять, только выполнив следующие действия:

  1. Вернитесь в своей системе контроля версий в состояние, к которому вы хотите выполнить откат
  2. Увеличьте версию и / или номер сборки вашего проекта
  3. Создайте и подпишите ваше приложение
  4. Распространите свое приложение через службу бета-тестирования или App Store
  5. Пользователь должен обновить приложение на своем телефоне

Вышеуказанные шаги могут быть выполнены вручную, однако рекомендуется полностью автоматизировать процесс, чтобы иметь возможность быстро реагировать.

Альтернатива: “пере-подписать” старую сборку

Альтернативный подход, который может подойти некоторым командам:

  1. Получить доступ к старой сборке (.ipa file) до того, как регрессия была введена
  2. Обновите версию / номер сборки в Info.plist файле
  3. “Снова подписать” старую сборку
  4. Распространите его как новую сборку

Однако “подпись” приложений iOS часто создает больше проблем, особенно потому, что инструменты командной строки Xcode не предлагают хорошего способа сделать это. iOS комьюинити создало и поддерживает различные скрипты с открытым исходным кодом, предназначенных для “подписи” файлов iOS, один пример можно найти в fastlane resign feature source code. Файл вырос за последние 7 лет и составил более 800 строк, в основном из-за возрастающей сложности бинарных файлов, таких как множественные таргеты и новые entitlements.