VIII. Откаты
Откат сборки, которая вызывает проблемы
Редактировать на GitHubApp Store изначально не допускает откатов, поэтому в этом разделе описывается, как добиться аналогичных результатов, используя доступные способы.
Поэтапные релизы
Используя поэтапные выпуски, вы можете медленно выкатить сборку в прод, начиная с маленького количества активных пользователей. Основным преимуществом этого подхода является встроенный способ приостановить развертывания до того, как оно достигнет большого количества пользователей,что позволяет заменить бинарник.
Однако даже в случае поэтапных выпусков невозможно полностью отозвать сборку: после того, как сборка установлена на устройстве пользователя, единственным способом изменить эту сборку является распространение новой с обновленным номером версии / билда.
Рекомендуется: версия Bump & Release
Как и в случае поэтапных выпусков, сборки App Store и TestFlight можно обновлять, только выполнив следующие действия:
- Вернитесь в своей системе контроля версий в состояние, к которому вы хотите выполнить откат
- Увеличьте версию и / или номер сборки вашего проекта
- Создайте и подпишите ваше приложение
- Распространите свое приложение через службу бета-тестирования или App Store
- Пользователь должен обновить приложение на своем телефоне
Вышеуказанные шаги могут быть выполнены вручную, однако рекомендуется полностью автоматизировать процесс, чтобы иметь возможность быстро реагировать.
Альтернатива: “пере-подписать” старую сборку
Альтернативный подход, который может подойти некоторым командам:
- Получить доступ к старой сборке (
.ipa
file) до того, как регрессия была введена - Обновите версию / номер сборки в
Info.plist
файле - “Снова подписать” старую сборку
- Распространите его как новую сборку
Однако “подпись” приложений iOS часто создает больше проблем, особенно потому, что инструменты командной строки Xcode не предлагают хорошего способа сделать это. iOS комьюинити создало и поддерживает различные скрипты с открытым исходным кодом, предназначенных для “подписи” файлов iOS, один пример можно найти в fastlane resign feature source code. Файл вырос за последние 7 лет и составил более 800 строк, в основном из-за возрастающей сложности бинарных файлов, таких как множественные таргеты и новые entitlements.