Skip to content
Назад к статьям
Руководство9 мин чтения

Google Play: 12 тестировщиков на 14 дней — как опубликовать Android-приложение в 2026

Что Google Play требует от соло-разработчика: верификация устройства, закрытый тест с 12 тестировщиками на 14 дней и рынок взаимного тестирования, выросший из этого правила.

Google PlayAndroidExpoEASCouncil
Соло-разработчик ждёт за ноутбуком рядом с карточкой Google Play Console: верификация устройства и закрытый тест пройдены, 10 из 12 тестировщиков подключились, 14 дней ещё не начались, кнопка «Подать заявку на продакшен» неактивна

Обновление от 1 октября 2026: закрытый тест позади, и Council теперь доступен в Google Play.

А вот как это выглядит на самом деле: Council в Google Play в момент, когда я пишу этот текст.

Дашборд Google Play Console для Council: карточка «Apply for access to production» показывает опубликованный закрытый тест, 10 подключившихся тестировщиков из 12 необходимых, незапущенный 14-дневный отсчёт и неактивную кнопку подачи заявки

Приложение собрано, подписано, проверено, одобрено и живёт на закрытом треке в 177 странах. Кнопка, которая позволила бы его опубликовать, серая — и останется серой ещё как минимум две недели. Подключились десять тестировщиков. Нужно двенадцать, и только потом двухнедельный отсчёт начнётся с нуля.

То же самое приложение уже несколько месяцев лежит в App Store. Процесс Apple был такой: загрузить, заполнить метаданные, дождаться ревью, выпустить. Процесс Google для аккаунта вроде моего — это явление другого порядка, и почти вся сложность лежит не там, где разработчик ожидает сложности.

Стена перед стеной

26 августа я начал с простого вопроса: где мы вообще находимся по Android? Ответ оказался такой: я не могу создать приложение. Не «приложение отклонили» — в Play Console вообще не было записи о приложении, а кнопка «Create app» была закрыта замком с подписью «Complete account verifications to create new apps».

Две открытые задачи, связанные цепочкой:

  1. Подтвердите, что у вас есть доступ к мобильному устройству на Android. Нужно войти в мобильное приложение Play Console на настоящем железе.
  2. Подтвердите контактный номер телефона — эта задача открывается только после первой и после того, как Google одобрит документы, удостоверяющие личность.

Интереснее первая. Ей нужно физическое устройство без рута на Android 10 или новее, и приложение Play Console проверяет целостность устройства, так что эмуляторы не проходят. Android-устройства у меня не было: я разрабатываю на Mac и выпускаю на iPhone.

Обойти это красиво нельзя. Облачные фермы устройств означают, что вы вводите пароль от Google-аккаунта на арендованном железе. Одолженный у друга телефон проходит проверку меньше чем за минуту, но оставляет вас в положении, когда вы выпускаете Android-сборку, ни разу не запущенную на Android. Значит: купить дешёвый б/у телефон у нормального продавца, чтобы он был сертифицирован Play Protect и не нёс на себе кастомную прошивку. Это и есть весь ответ — и он стоит примерно недели календарного времени ещё до того, как вы напишете первую строчку Android-специфичного кода.

Объезд, который выглядит как короткий путь

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

Она увела дальше, чем я ожидал: запись в Dun & Bradstreet у бизнеса действительно есть, а именно она и нужна организационному аккаунту. А потом догнали детали:

  • Это новый аккаунт, а не конвертация. Google не превращает личный аккаунт в организационный. Нужно зарегистрировать второй аккаунт разработчика, верифицировать его и перенести приложение.
  • Верификация требует, чтобы юридическое название точно совпадало с записью D&B. Моя зарегистрирована на моё собственное имя, а не на то торговое название, которым я реально пользуюсь.
  • Правила Google исключают «DBA, вымышленные наименования, торговые названия», и в сообществе стабильно рассказывают, как индивидуальных предпринимателей отправляют обратно на личный аккаунт.

Итого: примерно то же календарное время, что и просто прогнать закрытый тест, плюс реальный шанс получить отказ в конце. Регистрировать компанию, чтобы обойти четырнадцатидневный таймер, — это делать выводы задом наперёд. Если открывать компанию, то ради ответственности и налогов. Я закрыл эту ветку и купил телефон.

Сборка была лёгкой частью — и всё равно лёгкой не была

Верификация прошла 2 сентября. В тот же вечер я создал приложение и запустил первую продакшен-сборку под Android. Мобильное приложение Council сделано на Expo, так что это одна команда.

Сорок минут она стояла в очереди на бесплатном тарифе EAS, двадцать две компилировалась — и зависла на фазе configure в Gradle. Первая Android-сборка, кэша нет ни у чего: RevenueCat, PostHog, Google Sign-In и Hermes компилировались с нуля на общем воркере в очереди за всеми платными сборками. Я отменил её и собрал локально, что заняло около двадцати пяти минут — и с тех пор все Android-сборки Council делаются именно так. У RevenueCat — слоя подписок из этого списка — теперь есть отдельная короткая статья о настройке.

Дальше Play Console захотела всё остальное, а остальное — это не одно большое препятствие, а длинный хвост форм: девять деклараций о содержании приложения (политика конфиденциальности, реклама, возрастной рейтинг, целевая аудитория, безопасность данных, рекламный идентификатор, государственные приложения, финансовые функции, здоровье), карточка в сторе, feature-графика 1024×500 и скриншоты, перегенерированные под пропорции Play, потому что iOS-кадры не подходят. Одиннадцать из одиннадцати задач настройки — всё за один вечер.

Одна сноска для тех, кто это автоматизирует: готовый AAB весит 78 МБ, а инструменты браузерной автоматизации ограничивают загрузку файлов десятью мегабайтами. Каждый релиз Council требовал, чтобы я лично перетащил файл с рабочего стола в окно Chrome. Это единственный шаг во всём конвейере, который никакая автоматизация так и не убрала.

Сами ворота

Внутреннее тестирование опубликовалось мгновенно. Продакшен был серым, и требования расписаны прямо там:

Требование Детали
Опубликовать релиз закрытого теста Проходит полное ревью политик, в отличие от внутреннего
Минимум 12 подключившихся тестировщиков Одновременно, на настоящих Google-аккаунтах
Прогнать закрытый тест 14 дней подряд Падение счётчика ниже 12 обрывает отсчёт
Подать заявку на продакшен Анкета о вашем закрытом тесте, затем проверка

Это касается личных аккаунтов, созданных 13 ноября 2023 года или позже. Мой — один из них.

Что стоит усвоить: часы считают подключения, а не сборки. Я выпустил три релиза на закрытом треке за три дня, пока счётчик стоял на месте, и ни один из них ничего не сбросил. Значение имеет одно число: сколько человек прямо сейчас держат ваше приложение установленным под Google-аккаунтом, который подключился к тесту.

Откуда на самом деле берутся двенадцать тестировщиков

Я начал так же, как начинают все: спросил друзей. Получилось четыре адреса Gmail, один из которых мой. Дальше выяснилось, что ссылка на подключение — та самая, которую Play Console выдаёт, чтобы вы ею делились, — работает только для тех, кто уже есть в вашем списке тестировщиков. Все остальные получают ошибку. То есть путь всегда в два шага: вы добавляете человека, потом он нажимает ссылку. А значит, рекрутинг по ссылке не работает в принципе.

Лечится это переключением трека с почтового списка на Google Группу — и как только вы это узнаёте, вы находите то, что правило построило на самом деле. Существует целая экосистема Telegram-групп, за которыми стоят Google Группы, где разработчики, застрявшие ровно на этих воротах, ставят приложения друг другу. Вступаешь в группу, подключаешься к чужим закрытым тестам, они подключаются к твоему. Мой трек теперь смотрит на Google Группу с несколькими сотнями человек, и путь от четырёх тестировщиков к десяти — это сообщение на русском в Telegram-канале с обещанием протестировать в ответ.

Отвечать взаимностью — это настоящая работа, и я её сделал: вступил ещё в четыре Google Группы, подключился к восьми закрытым тестам, поставил пять из них на эмулятор Pixel и открыл каждое. (Три из восьми используют приватные почтовые списки, туда попасть не вышло.) Эмулятор с образом Play для этого годится — физическое железо требуется только для верификации аккаунта разработчика.

Здесь я хочу быть аккуратным в формулировках. Заявленная цель Google — чтобы живые люди действительно пользовались приложением до того, как оно попадёт ко всем, и в заявке на продакшен вас спрашивают, как прошёл тест. На практике правило породило бартерный рынок счётчиков: дюжина незнакомых людей ставит ваше приложение, потому что вы поставили их. Это не мошенничество, никто ничего не подделывает — установки настоящие, аккаунты настоящие. Но и пользовательским тестированием это тоже не является.

Разрыв между «Вы тестировщик» и установленным приложением

Считайте, что каждый тестировщик наткнётся хотя бы на один из этих пунктов, потому что мои наткнулись:

  • Трек использует либо почтовый список, либо Google Группу, но никогда оба сразу. В момент переключения на группу мои четверо друзей перестали проходить, пока не вступили в неё.
  • Встроенный браузер Telegram залогинен в другой Google-аккаунт, чем Play Store на телефоне. Тестировщик успешно подключается — не под тем аккаунтом. Это была самая частая поломка.
  • «Item not found» в течение часа после подключения — это норма. Выглядит как отказ, а на самом деле просто ещё не дошло. Отправляйте людям ссылку на карточку в Play Store, а не веб-ссылку на подключение: она открывается в приложении Play под нужным аккаунтом и показывает карточку присоединения.
  • Play Console никогда не показывает, кто именно подключился. Только количество. Мне пришлось идти в свою же таблицу авторизации в Supabase, чтобы понять, кто из тестировщиков реально вошёл в приложение.

Часть, которая оправдывает правило

Вот честный противовес всему сказанному выше. Закрытый тест нашёл три бага, все три — Android-специфичные, и ни один не проявился бы ни на iOS, ни на моей машине:

Вход через Google был сломан на всех установках из Play. Play App Signing переподписывает бандл ключом Google, а не вашим ключом загрузки, поэтому отпечаток SHA-1 в моём Android OAuth-клиенте не совпадал ни с чем. Приложение прекрасно работало, когда я ставил его напрямую, и падало у всех, кто ставил его из стора.

Первый запуск у каждого тестировщика показывал ошибку оплаты. Приложение открывает пейволл при первом старте; пейволл запросил у Play Store продукты; продуктов не было, потому что подписки в Play требуют merchant-аккаунта, а я его не завёл. Узнал я об этом из скриншота тестировщика. Оттуда развернулся целый вечер: платёжный профиль, подписка, семидневный триал, учётные данные сервисного аккаунта и уведомления в реальном времени — всё то, что иначе я бы обнаружил в день запуска.

Гонка при входе. Android доставляет OAuth-редирект дважды: как результат браузера и как диплинк. Оба обработчика запустили обмен токена с разницей примерно в 50 мс; второй налетел на ограничение уникальности и вернул 500. Пользователь видел «Вход не завершён», будучи на самом деле уже вошедшим. Это гонка, поэтому она задела одного тестировщика и не задела предыдущего.

Три настоящих бага, от десяти тестировщиков, за три дня. Все три я бы выпустил. Что бы я ни думал о том, как правило двенадцати тестировщиков работает на практике, оно поймало то, чего не поймал я.

Что бы я сказал себе 26 августа

  1. Сначала купи Android-телефон. Всё остальное — следствие, включая сроки.
  2. Забудь про исключение для организационного аккаунта, если у тебя уже нет компании, точно совпадающей с записью D&B.
  3. Создай запись о приложении в тот же день, когда пройдёт верификация, даже если загружать пока нечего. Закрытый тест не начнётся, пока её нет.
  4. Ставь на трек Google Группу с самого начала, а не почтовый список. Переключение позже означает, что всех нужно приглашать заново.
  5. Заведи merchant-аккаунт и продукты в сторе до того, как поставит приложение первый тестировщик, а не после.
  6. Набирай людей раньше, чем будешь готов. Дойти до двенадцати — самая долгая часть, и она целиком социальная, а не техническая.
  7. Спокойно чини баги во время теста. Релизы не сбрасывают отсчёт; сбрасывают его тестировщики, которые удаляют приложение.

Сборка, карточка в сторе, декларации, подписки и три исправления заняли примерно шесть часов реальной работы, растянутых на четыре вечера, и почти всё это делалось из терминала той же связкой, которой я пользуюсь для всего остального. А вот уговорить двенадцать человек не удалять приложение две недели — это часть, у которой инженерного решения нет вообще.

Двенадцать тестировщиков и четырнадцать дней спустя Council доступен в Google Play.

Pavel Smolin · 3 октября 2026 г.

Похожие статьи

Руководство4 мин чтения

Как подключить MCP-сервер Supabase к Claude Code

Supabase подключается к Claude Code одной командой через хостируемый MCP-сервер: OAuth или personal access token, project_ref, read_only и какие инструменты разрешить.

Руководство3 мин чтения

Как подключить MCP-сервер RevenueCat к Claude Code

RevenueCat подключается к Claude Code двумя командами: официальный плагин или хостируемый MCP-сервер. OAuth или API-ключ, проверка и какие инструменты разрешить.

Руководство9 мин чтения

Поставьте дешёвое суждение перед дорогим: как типизированный фильтр снижает задержку и стоимость LLM-пайплайна

Три топовые модели совещаются пятнадцать секунд. Суждение за 300 мс перед ними отсекает мусор и снимает ожидание, в котором не нуждались 82% запусков.