Поэтапные выпуски и обновления
Поэтапно выпускайте версии и обновления
«Поэтапные выпуски и обновления» — бесплатный урок Android Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Android Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Android Academy содержит 4 уроков всего.
Безопасный выпуск обновлений
Одновременная отправка новой версии всем пользователям рискованна: незаметная ошибка может сразу затронуть всю аудиторию. Google Play предлагает более безопасные варианты: тестовые треки и поэтапные распространения.
На этом уроке вы узнаете о треках выпусков, о том, как сначала распространить обновление среди небольшого процента пользователей, как обновления доходят до пользователей и как реагировать на проблемы.
Треки выпусков
Play распределяет выпуски по трекам — от наименьшего охвата к наибольшему:
- Внутреннее тестирование — до 100 тестировщиков, доступно в течение нескольких минут, для вашей команды.
- Закрытое тестирование — приглашённые тестировщики из списков или групп электронной почты.
- Открытое тестирование — присоединиться к общедоступной бета-версии может любой желающий.
- Рабочая среда — все пользователи магазина.
Оптимальный порядок — продвигать сборку по ступеням: внутреннее → закрытое → открытое тестирование → рабочая среда.
Создание выпуска
В любом треке нажмите Создать новый выпуск, загрузите файл .aab (или выберите его в обозревателе наборов приложений) и добавьте описание выпуска.
В описаниях выпусков используются языковые теги, поэтому для каждой локали отображается свой текст. Делайте описания короткими и ориентированными на пользователей.
<!-- Release notes, one block per language -->
<en-US>
- New dark mode
- Faster startup
- Fixed a crash when opening profiles
</en-US>
<tr-TR>
- Yeni karanlık mod
- Daha hızlı açılış
- Profil açılırken oluşan çökme düzeltildi
</tr-TR>Поэтапное распространение по процентам
Для выпуска в рабочей среде можно выполнить поэтапное распространение: сначала отправить обновление небольшой части пользователей — например, 10%, — а затем постепенно расширять охват.
Play случайным образом выбирает пользователей, которые получат обновление. Вы отслеживаете частоту сбоев и ANR, а затем увеличиваете процент: 10% → 25% → 50% → 100%.
Если показатели ухудшаются, не увеличивайте охват или остановите распространение, пока проблема не затронула большинство пользователей.
Остановка и возобновление распространения
Если поэтапное распространение выявило проблему, его можно остановить в Console. После остановки новые пользователи перестают получать обновление, а у тех, кто уже обновился, оно сохраняется.
Выпустив исправление в новой версии, вы можете возобновить распространение или начать новое. Остановка даёт время на исправление без полного отзыва обновления — такой возможности Play фактически не предоставляет для пользователей, которые уже установили его.
Именно поэтому распространение следует начинать с небольшого процента.
Как обновления доходят до пользователей
По умолчанию приложение Play Store автоматически обновляет приложения в фоновом режиме (часто по Wi-Fi). Пользователи также могут вручную нажать «Обновить».
Помните о правиле versionCode: каждый выпуск должен иметь целое число больше, чем предыдущий, иначе Play отклонит его. versionName — это лишь название, которое видят пользователи.
android {
defaultConfig {
// Must be strictly greater than the previous release
versionCode = 13
// Friendly label shown in the store and settings
versionName = "1.5.0"
}
}Обновления внутри приложения
Иногда нужно предложить пользователям обновиться прямо внутри приложения. API In-App Updates предоставляет два режима:
- Гибкий — загрузка выполняется в фоновом режиме, пока пользователь продолжает работать с приложением.
- Немедленный — полноэкранный блокирующий сценарий для критически важных обновлений.
Вы проверяете доступность и, если обновление готово, запускаете выбранный сценарий.
val manager = AppUpdateManagerFactory.create(context)
manager.appUpdateInfo.addOnSuccessListener { info ->
val available = info.updateAvailability() ==
UpdateAvailability.UPDATE_AVAILABLE
if (available && info.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
manager.startUpdateFlowForResult(
info,
AppUpdateType.FLEXIBLE,
activity,
REQUEST_CODE_UPDATE
)
}
}Завершение гибкого обновления
Гибкое обновление загружается незаметно для пользователя. После завершения необходимо вызвать completeUpdate(), чтобы установить его — обычно после того, как вы предложите пользователю выполнить действие с помощью всплывающего уведомления.
Отслеживайте состояние DOWNLOADED, а затем предложите перезапустить приложение.
manager.registerListener { state ->
if (state.installStatus() == InstallStatus.DOWNLOADED) {
// Tell the user, then finish the install
showRestartSnackbar {
manager.completeUpdate()
}
}
}Мониторинг после выпуска
Выпуск — не конец работы. На панели Android vitals в Play Console отслеживаются показатели состояния приложения, которые Play также использует для его ранжирования:
- Частота сбоев и частота ANR (приложение не отвечает).
- Избыточные пробуждения, медленная отрисовка и проблемы с батареей.
Внимательно следите за этими показателями во время поэтапного распространения. Резкий рост — сигнал остановить распространение до расширения охвата.
Работа с отзывами и проблемами
После запуска важны две постоянные практики:
- Отвечайте на отзывы в Console — это улучшает рейтинг и помогает выявлять реальные ошибки.
- Разбирайте сбои по данным vitals или вашего средства отслеживания сбоев, исправляйте их, увеличивайте
versionCodeи выпускайте новое поэтапное обновление.
Выпуск — это цикл: выпускайте небольшими шагами, измеряйте, исправляйте и выпускайте снова.
Безопасный рабочий процесс выпуска
Если объединить всё содержание урока, надёжный рабочий процесс выглядит так:
- Загрузите приложение во внутреннее тестирование и проведите быструю проверку с командой.
- Переведите его в закрытое/открытое тестирование для получения более широкой обратной связи.
- Начните распространение в рабочей среде с поэтапного охвата 10%.
- Следите за показателями Android vitals и увеличивайте процент при стабильных результатах.
- Остановите распространение и исправьте проблему при скачке показателей, затем возобновите его с новой сборкой.
Небольшие шаги и хороший мониторинг превращают выпуск обновлений из пугающей задачи в обычную процедуру.
Быстрая проверка
Вы выпустили обновление в рабочую среду для 10% пользователей, и частота сбоев резко возросла. Вы хотите не допустить получения проблемной версии остальными пользователями, пока готовите исправление. Что следует сделать?
Итоги: распространение и обновления
Теперь вы можете уверенно выпускать обновления:
- Используйте треки — внутренний, закрытый, открытый и рабочую среду — для постепенного расширения охвата сборок.
- Выполняйте поэтапное распространение, начиная с небольшого охвата и увеличивая его при стабильных показателях.
- Останавливайте распространение при скачке показателей vitals, затем исправляйте проблему и выпускайте новую сборку с увеличенным
versionCode. - При необходимости предлагайте пользователям обновиться с помощью API In-App Updates (в гибком или немедленном режиме).
- Отслеживайте Android vitals и отзывы, а затем улучшайте приложение.
На этом завершается тема публикации в Google Play — от подписанной сборки выпуска до безопасного распространения с мониторингом.
Часто задаваемые вопросы
Урок «Поэтапные выпуски и обновления» бесплатный?
Да — полный текст урока «Поэтапные выпуски и обновления» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Android Academy, подпишись на CoddyKit PRO. Курс Android Academy содержит 4 уроков всего.
Чему я научусь в уроке «Поэтапные выпуски и обновления»?
Поэтапно выпускайте версии и обновления Ты практикуешь Android Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Android Academy?
Предыдущий опыт не требуется. Android Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Поэтапные выпуски и обновления»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Android Academy?
Да. Каждый урок Android Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Подготовка сборки к выпуску
- Подписание приложения
- Play Console и страница приложения
- Поэтапные выпуски и обновления