Бета-тестирование через TestFlight и тестовые треки Google Play
Практика3 минРедакция Innovialabs
Коротко
На iOS бету раздают через TestFlight (внутренние и внешние тестировщики), на Android — через треки Play Console (внутренний, закрытый, открытый). Проверенный билд потом выпускают в продакшен без пересборки.
Коротко: как устроена бета на обеих платформах
Бета-тест — это раздача почти готового билда ограниченному кругу людей через официальные инструменты магазинов. Пользователи ставят приложение как обычное, а вы получаете отзывы и отчёты о падениях до публичного релиза.
- iOS — сервис TestFlight в App Store Connect. Тестировщики ставят приложение TestFlight и через него получают ваши билды.
- Android — тестовые треки в Google Play Console: внутренний, закрытый и открытый. Тестировщик подтверждает участие по ссылке и ставит приложение прямо из Google Play.
Главное преимущество обоих путей: тестируется тот же самый билд, который потом уйдёт в продакшен.
Три уровня тестирования
| Уровень | iOS (TestFlight) | Android (Play Console) |
|---|---|---|
| Внутреннее | Члены команды в App Store Connect, билд доступен сразу после обработки | Internal testing: список email, билд доступен быстро, без полной проверки |
| Закрытое | Внешние тестировщики по email или группам, нужен Beta App Review | Closed testing: списки email или Google Groups, проходит проверку Google |
| Открытое | Публичная ссылка TestFlight с лимитом участников | Open testing: любой может вступить со страницы приложения в Google Play |
Практичный порядок: сначала внутренний круг (команда и заказчик), затем закрытый (лояльные пользователи, партнёры), и только потом открытый, если нужна широкая выборка устройств.
Важно для новых аккаунтов Google Play: для новых личных аккаунтов разработчика Google требует пройти закрытое тестирование с минимальным числом участников в течение определённого срока, прежде чем откроется продакшен. Точные условия меняются — проверяйте их в Play Console заранее и закладывайте это время в план.
Как пригласить тестировщиков
TestFlight:
- Загрузите билд через Xcode или CI и дождитесь обработки.
- Для внутренних тестировщиков добавьте людей в команду App Store Connect и включите их в группу.
- Для внешних создайте группу, добавьте email или включите публичную ссылку, заполните «What to Test» и отправьте билд на Beta App Review.
Google Play:
- Загрузите AAB в нужный трек и создайте релиз.
- Добавьте список email или Google Group.
- Отправьте тестировщикам opt-in ссылку — без вступления по ней приложение в магазине они не увидят.
Учтите, что билды TestFlight имеют срок действия, после которого перестают запускаться. Для долгих тестов нужно регулярно выкладывать свежие сборки.
Сбор отзывов и крашей
- TestFlight позволяет тестировщику сделать скриншот и отправить отзыв прямо из приложения. Отзывы и отчёты о падениях видны в App Store Connect и в Xcode Organizer.
- Google Play собирает краши и ANR в разделе Android vitals, а pre-launch report автоматически прогоняет билд на наборе реальных устройств и показывает ошибки и проблемы доступности.
- Для подробной картины добавьте Crashlytics или Sentry: стек-трейсы с символикацией, версии, устройства и шаги до падения.
Совет: дайте тестировщикам короткий чек-лист сценариев («зарегистрироваться, оплатить, получить push») и один канал для обратной связи. Иначе отзывы будут разрозненными и неполными.
Из беты в продакшен
- iOS: протестированный билд выбирается в версии приложения в App Store Connect и отправляется на App Review. Пересобирать не нужно. Для мягкого выкатывания используйте phased release — обновление доходит до пользователей постепенно.
- Android: в Play Console релиз из тестового трека продвигается (promote) в продакшен. Используйте staged rollout: начните с небольшой доли пользователей и расширяйте, следя за крашами в Android vitals.
Частые ошибки
- Отправлять внешним тестировщикам сырой билд без внутренней проверки.
- Не увеличивать номер сборки — магазины не примут повторную загрузку с тем же build number / versionCode.
- Тестировать на debug-сборке с другими ключами и окружением, чем у продакшена.
- Забывать про тестовые аккаунты и инструкции для ревьюеров при внешнем тесте.
- Выкатывать на всех пользователей сразу, без поэтапного релиза.