Как устроен релиз мобильного приложения
Вопрос
Расскажи, как в твоей команде устроен процесс релиза Android-приложения от мержа до 100% пользователей.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Релизная ветка или тег, сборка AAB в CI с подписью ключом загрузки
Внутренний трек и регрессия QA
Поэтапный выпуск в прод с мониторингом крашей и ANR
Остановка выпуска и hotfix с новым versionCode вместо отката
Feature flags для рискованных функций
mapping.txt, release notes, контроль targetSdk
Что могут спросить следом
- Что делаешь, если краш нашли на 20%?
- Как часто релизитесь и почему?
- Как публиковаться в RuStore?
Разбор
Работаем релизными поездами: раз в одну-две недели от main отрезается релизная ветка, в которую дальше попадают только исправления. CI собирает release AAB с R8, подписывает ключом загрузки из секретов, загружает mapping.txt и выкладывает во внутренний трек. QA проходит регрессию на этой сборке. Потом поэтапный выпуск: 1-5%, наблюдаем сутки за крашами и ANR в Crashlytics и Android Vitals, затем 20, 50, 100%. Если метрики плохие, останавливаем выпуск. Откатить версию в Play нельзя, поэтому рискованные функции заранее закрыты удалёнными флагами: выключаем флаг, а если проблема в коде, готовим hotfix с большим versionCode и выпускаем его тем же путём, но быстрее. Параллельно следим за требованиями Play по targetSdk и планируем его повышение как отдельную задачу. Для RuStore та же сборка выкладывается через их консоль или API.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.