В первой части мы разобрали процесс подготовки приложения к публикации и рассмотрели требования модерации в App Store и Google Play. Однако экосистема мобильных сторов сегодня значительно шире, и успешный релиз нередко включает размещение продукта в альтернативных магазинах, которые активно развиваются и набирают аудиторию.

В этой части мы рассмотрим пошаговый процесс размещения приложений в AppGallery и RuStore. Эти платформы имеют собственные правила, проверки безопасности, требования к данным пользователя и особенности технической интеграции, которые важно учитывать заранее.

Материал предназначен для заказчиков, разработчиков, продакт-менеджеров и технических специалистов, отвечающих за релиз и сопровождение мобильных продуктов.

Размещение приложения в AppGallery

Магазин приложений AppGallery, входящий в экосистему Huawei, активно развивается и становится одной из ключевых альтернатив международным сторам. Размещение приложения на этой платформе требует внимательного соблюдения процедур идентификации разработчика и адаптации проекта под сервисы HMS (Huawei Mobile Services).

Процесс публикации во многом схож с другими экосистемами, однако имеет ряд отличий: обязательная аутентификация личности (real-name authentication), отдельные требования к верификации юридических лиц и необходимость проверки совместимости с устройствами Huawei.

1. Аккаунт в AppGallery

Для начала необходимо создать Huawei ID, если он ещё не существует. Это универсальная учётная запись, используемая для доступа ко всем сервисам Huawei, включая инструменты для разработчиков.

После регистрации Huawei ID потребуется пройти процедуру подтверждения личности (real-name authentication) — это обязательное условие для возможности публикации приложений.

Для индивидуальных разработчиков (физлиц) вам потребуется загрузить копии удостоверения личности (паспорт, удостоверение и др.), и заполнить свои реальные ФИО и идентификационные данные. 

Для компаний/организаций потребуется также предоставить DUNS Number, либо, если у компании нет DUNS, Huawei предлагает альтернативу — подтвердить юридический статус вручную, предоставив сканы официальных регистрационных документов.

Проверка корпоративных данных проводится вручную и обычно занимает несколько рабочих дней.

2. Создать новое приложение

В AppGallery Connect, в разделе «Приложения и атомарные сервисы», можно создать новое приложение.

При создании необходимо указать следующие параметры:

  • Наименование приложения — должно быть уникальным в пределах вашей консоли, но не обязательно уникальным в самом магазине. Допускается до 64 символов.

  • Тип пакета — выберите формат сборки приложения.

  • Поддерживаемые устройства — укажите типы устройств, на которых приложение будет доступно.

  • Категория — определите категорию продукта («Приложение» или «Игра»).

  • Язык по умолчанию — выберите основной язык локализации интерфейса и описания.

Создать приложение
Создать приложение

3. Подготовка приложения к публикации

Перед отправкой на модерацию необходимо собрать приложение в формате APK (или, при необходимости, AAB / App Bundle, хотя чаще используется именно APK) с корректной цифровой подписью.

Huawei настоятельно рекомендует проводить тестирование на реальных устройствах Huawei или с использованием HMS Core. Это позволяет убедиться, что приложение корректно функционирует в экосистеме Huawei и не зависит от сервисов Google (GMS).

Если в проекте используются сторонние SDK, необходимо проверить, не требуют ли они компонентов GMS. Например, push-уведомления, реализованные через Firebase, не будут работать — для их корректной интеграции следует использовать HMS Push Kit.

4. Заполнение данных приложения

После подготовки сборки необходимо оформить карточку приложения в AppGallery Connect. Корректное и детализированное заполнение всех полей влияет на модерацию, индексацию и видимость приложения в каталоге.

Основные разделы включают:

  • Краткое описание — отображается под названием приложения и может содержать до 80 символов.

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

  • Категория — выберите основную категорию и подкатегорию. От правильного выбора зависит отображение приложения в каталоге, фильтрах и рекомендациях. Ошибочная категория — одна из частых причин отклонения при модерации.

  • Тип распространения — укажите, является ли приложение бесплатным или платным. Если реализованы встроенные покупки (In-App Purchases), настройте их отдельно через In-App Purchases Kit.

Данные приложения
Данные приложения

Скриншоты и иконки

  • Иконка приложения - размер должен быть 216 × 216 px (PNG, без прозрачности). Иконка должна быть без текста и рамок. Использование логотипов брендов без разрешения запрещено.

  • Скриншоты приложения - загружаются для каждого типа устройства отдельно (телефон, планшет и т.д.). Разрешение: от 320 px до 3840 px по длинной стороне. Минимум 3 скриншота, максимум 8 на каждую локализацию. Huawei требует реальные изображения интерфейса, а не рекламные баннеры.

  • Feature Graphic (опционально) - промо-баннер, который отображается на странице приложения и в подборках. Рекомендуемый размер: 1024 × 500 px. Необязательный, но повышает видимость приложения в магазине.

Скриншоты и иконки
Скриншоты и иконки

Политика конфиденциальности (Privacy Policy)

Huawei требует, чтобы у всех приложений была публичная ссылка на политику конфиденциальности. URL должен быть доступен без авторизации.

Если приложение публикуется в китайском регионе, страница политики конфиденциальности и описание приложения обязательно должны быть представлены на китайском языке.

При первом запуске пользователь должен явно ознакомиться с политикой. Это обязательное требование магазина, если политика не указана при первом запуске приложения или на странице регистрации/авторизации, тогда ваше приложение будет отклонено при проверке.  

Уведомления о конфиденциальности
Уведомления о конфиденциальности

Возрастной рейтинг (Age Rating)

Возрастной рейтинг обязательный параметр, который определяет, для какой возрастной аудитории может быть показано и установлено приложение.

Подробное описание по каждой возрастной категории можно посмотреть на официальном сайте

Huawei также вручную проверяет соответствие указанного возрастного рейтинга фактическому контенту приложения, поэтому занизить рейтинг не получится, приложение будет отклонено. 

Рейтинг контента
Рейтинг контента

Теги конфиденциальности (Privacy Label)

Теги конфиденциальности — это раздел, где вы должны задекларировать, какие типы пользовательских данных собирает приложение, с какой целью и как они обрабатываются.

Что включает в себя Privacy Label по документации:

  • Типы данных - вы должны указать, какие категории данных приложение может собирать: например, местоположение, идентификаторы устройства и т.д. 

  • Назначение использования данных - для каждого типа данных необходимо указать причину (цель), по которой приложение их использует. 

  • Согласие и контроль пользователю - пользователь должен иметь возможность согласиться с использованием данных и контролировать их использование через приложение.

Теги конфиденциальности должны полностью соответствовать содержанию вашей политики конфиденциальности, размещённой по публичной ссылке.

Если вы меняете функционал приложения или добавляете SDK, собирающие новые данные, тогда необходимо обязательно обновлять теги приватности.

Теги конфиденциальности
Теги конфиденциальности

Данные для проверки

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

5. Ключи подписи

Приложение обязательно должно быть подписано вашим собственным ключом.

В отличие от Google Play, Huawei не выполняет автоматическую подпись AAB-файлов от имени разработчика — поэтому вы должны подписать сборку самостоятельно.

Все последующие обновления должны быть подписаны тем же ключом, иначе сборка не пройдет автоматическую проверку и будет отклонена.

6. Предрелизное тестирование

В Huawei доступно открытое тестирование приложения, при котором вы можете пригласить определённых пользователей протестировать приложение до его официального релиза по ссылке. 

Тестеры получат доступ к приложению через AppGallery, как обычные пользователи, но только те, кого вы пригласили и кто принял приглашение. 

Для проведения тестирования необходимо задать временной период, после этого приложение перестаёт быть доступным для теста.

7. Обновление версии

При загрузке новой версии нужно также указывать version code / version name, которые выше предыдущих. Подпись новой версии должна совпадать с ключом, зарегистрированным Huawei, чтобы обновление шло корректно.

В разделе Version information указываются изменения и релиз-ноты.

8. Отправьте на модерацию

Если все данные заполнены и вы провели полное тестирование приложения, тогда можно отправить его на проверку. Huawei проверит приложение согласно AppGallery Review Guidelines. При одобрении приложение станет доступным в AppGallery. 

9. Возможные причины отказа

  • Приложение падает, нестабильно работает или содержит баги.

  • Метаданные вводят пользователя в заблуждение или не соответствуют функциональности приложения.

  • Нарушения пользовательской приватности — отсутствие политики, отсутствие явного согласия, сбор данных без уведомления.

  • Фальшивый или обманный контент — ложные обещания, кликбейт, введение в заблуждение.

  • Категория выбрана некорректно или невозможно изменить её без обращения к службе поддержки.

  • Нарушение правил рекламы, платежей, автоматических подписок.

Размещение приложения в RuStore

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

1. Аккаунт в RuStore

Для публикации приложений необходимо зарегистрироваться в RuStore Console (консоли разработчика RuStore).

Вход возможен через VK ID, а также с помощью электронной почты, номера телефона или привязки к VK ID.

Аккаунт может быть оформлен как на физическое лицо, так и на индивидуального предпринимателя или юридическое лицо.

Для юридических лиц необходимо указать сведения о компании и контактную информацию. Подтверждение учётной записи выполняется с использованием усиленной квалифицированной электронной подписи (УКЭП)через систему «КриптоПро». Процесс проверки обычно занимает от 2 до 4 рабочих дней.

Если бизнес уже зарегистрирован в VK Business ID, можно выбрать его в качестве источника — все данные о компании будут автоматически импортированы в RuStore Console.

2. Создать новое приложение

При добавлении нового приложения в появившемся окне необходимо указать наименование приложения, тип приложения и тип монетизации.

Наименование приложения должно быть уникальным и содержать не более 50 символов. 

Добавить приложение
Добавить приложение

3. Подготовка приложения к публикации

RuStore поддерживает загрузку APK и AAB форматов.

При первой версии APK должно быть:

  • подписано (signed APK)

  • размер не превышать 5 ГБ 

  • пакет (package name) должен быть уникальным

Перед загрузкой .aab-файла (Android App Bundle) в RuStore важно предварительно добавить к нему цифровую подпись.

Это обязательное требование, поскольку RuStore, в отличие от Google Play, не выполняет автоматическую подпись загружаемых AAB-файлов от имени разработчика. Если файл не будет подписан, система просто не примет его и не позволит продолжить публикацию.

При последующих версиях APK/AAB подпись должна совпадать с предыдущей, иначе сборка не загрузится.

Файлы
Файлы

4. Заполните данные приложения

При загрузке новой версии вам потребуется указать основную информацию о приложении, описание, категории, иконку, скриншоты. 

Информация о приложении
Информация о приложении

Краткое описание должно содержать не более 80 символов, а подробное описание — до 4000 символов.

В разделе «Категория» необходимо выбрать основную категорию, наиболее точно соответствующую функциональности вашего приложения, например — «Покупки» для интернет-магазина косметики.

Кроме того, следует установить возрастное ограничение. Подробные рекомендации по выбору соответствующего рейтинга приведены в официальной документации.  

В разделе «Безопасность данных пользователя» необходимо указать, какие разрешения запрашивает приложение и с какой целью.

Например: ACCESS_FINE_LOCATION — для отображения текущего положения пользователя при поиске адреса на карте.

Ниже следует перечислить, какие данные собирает приложение, и пояснить, для чего они используются.

Безопасность данных пользователя
Безопасность данных пользователя

Также убедитесь, что загружены скриншоты для мобильной версии приложения.

Медиафайлы для каталога
Медиафайлы для каталога

В разделе «Комментарий для модератора» необходимо указать данные для входа в тестовый аккаунт, если полная функциональность приложения доступна только зарегистрированным пользователям. Также рекомендуется добавить любую дополнительную информацию, которая поможет модератору корректно проверить работу приложения.

Комментарий для модератора
Комментарий для модератора

Загрузите билд

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

Предрелизное тестирование

В RuStore доступно альфа и бета-тестирование приложения. 

Альфа-тестирование предполагает закрытое тестирование новой версии приложения до публикации. Данный тип тестирования доступен только если есть хотя бы одна рабочая версия, опубликованная на всех пользователей.

Для тестирования необходимо будет загрузить файл приложения в формате APK /AAB и добавить тестировщиков. 

Бета-тестирование позволяет выпускать предварительные версии приложения и предоставлять к ним доступ широкой аудитории для открытого тестирования. Распространение приложения происходит по прямой ссылке.

Данный тип тестирование также возможен при наличии уже опубликованной рабочей версии приложения. 

Тестирование
Тестирование

7. Обновление версии

При загрузке новой версии приложения в разделе «Что нового» вы можете описать все ключевые изменения, которые произошли с момента прошлого релиза. 

Убедитесь, что versionCode увеличен по сравнению с предыдущим. 

При изменении цены также укажите это в описании релиза. 

8. Отправьте на модерацию

После заполнения всех данных и проверки приложения отправьте его на модерацию. 

По опыту, проверка обновления приложения обычно занимает не более одного дня. В случае публикации нового приложения продолжительность модерации зависит от сложности функционала и, как правило, составляет от одного до трёх дней.

9. Возможные причины отказа

  • Приложение не работает стабильно, есть баги.

  • Функционал, который заявлен, либо часть функций не работают или отсутствуют.

  • Приложение выглядит как просто оболочка WebView, перенаправляющая на веб-сайт, без собственной ценности.

  • Нарушения безопасности, угрозы правам пользователей.

  • Неправильная категория, возрастной рейтинг, несоответствие описания и фактического поведения приложения. 

Ключ подписи 

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

В данном разделе рассмотрен процесс создания и настройки ключа подписи (.keystore), его подключение к проекту через файл key.properties и конфигурацию подписи в build.gradle. Также приведены команды для проверки корректности подписи и сравнения отпечатков сертификата (SHA1/SHA256) с зарегистрированными в магазине значениями.

Создание ключа подписи (.keystore)

Необходимо выполнить команду:

keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -storepass <storepass> -alias <alias> -keypass <keypass> -dname "name" -validity 10000
  • key— имя файла с ключом (можно поменять)

  • alias — alias (псевдоним ключа)

  • validity 10000 — срок действия ключа (в днях, ≈ 27 лет)

  • storepass — пароль от контейнера

  • keypass — пароль от ключа
     

storepass и keypass могут быть одинаковыми

Не рекомендуется класть ключ в git, нужно хранить его отдельно и сделать резервную копию.

Создание key.properties

Создай в корне Flutter-проекта файл android/key.properties:

storePassword=ТВОЙ_ПАРОЛЬ_ОТ_KEYSTORE
keyPassword=ТВОЙ_ПАРОЛЬ_ОТ_КЛЮЧА
keyAlias=alias
storeFile=key.jks

Настройка build.gradle для подписи

Нужно модифицировать файл android/app/build.gradle

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {


***

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ?  file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release

            ***

        }
    }
}

Теперь при сборке релизной версии APK или AAB будут подписаны. 

Через команду можно проверить подпись сборки:

jarsigner -verify -verbose -certs app-release.aab 

Альтернативно команда покажет отпечаток SHA1/SHA256, который можно сравнить с тем, что зарегистрировано в Google Play или AppGallery

keytool -printcert -jarfile path/to/app-release.aab

Комментарии (0)