Разработчик, который впервые собирает APK под устройства Huawei без Google Mobile Services, почти сразу упирается в ошибки авторизации push-уведомлений или геолокации — причина в том, что привычные вызовы GMS на новых смартфонах бренда просто не работают, и их нужно заменять на аналоги из Huawei Mobile Services. Это не баг конкретной модели, а архитектурная особенность экосистемы: приложения собираются под HMS Core и публикуются в магазине AppGallery.
Эта статья разбирает, что доступно разработчику в экосистеме Huawei: какие сервисы заменяют привычные API, какие инструменты использовать для сборки и отладки, как устроена публикация в AppGallery и на что обратить внимание при тестировании. Материал подойдёт тем, кто портирует существующее Android-приложение, и тем, кто пишет под HarmonyOS с нуля.
Экосистема Huawei: что нужно понимать разработчику
После ограничений 2019 года новые устройства Huawei поставляются без сервисов Google. Вместо них работает связка HMS Core (набор API и сервисов) и магазин AppGallery. Для разработчика это означает, что любой вызов Google Play Services — карты, push, оплата, авторизация — требует замены на соответствующий HMS-аналог либо на универсальное решение.
Важно различать два направления разработки. Первое — обычные Android-приложения (APK/AAB), адаптированные под HMS: они работают на смартфонах с EMUI. Второе — приложения под HarmonyOS, которые собираются в формате пакетов для этой ОС и пишутся преимущественно на ArkTS. Подходы, инструменты и даже учётные записи для них пересекаются, но требования к публикации различаются.
⚠️ Внимание: поддержка конкретных HMS-сервисов зависит от версии HMS Core на устройстве и региона. Перед тем как закладывать функцию в архитектуру, проверьте её доступность в официальной документации для вашего целевого рынка.
Регистрация и учётная запись разработчика
Начало работы — создание учётной записи на портале Huawei Developers. Регистрация бесплатна, но для публикации приложений потребуется пройти верификацию личности или компании: для физических лиц обычно запрашивается документ, для юридических — реквизиты организации. Процесс проверки занимает некоторое время, поэтому подать документы лучше заранее, не дожидаясь готовности сборки.
После верификации открывается доступ к консоли AppGallery Connect — центральной панели управления проектами. Здесь создаются приложения, настраиваются сервисы, генерируются конфигурационные файлы и ведётся аналитика.
- 🪪 Индивидуальный аккаунт — публикация от своего имени, упрощённая верификация
- 🏢 Корпоративный аккаунт — публикация от компании, доступ для команды
- 🔑 Включение двухфакторной защиты аккаунта до начала коммерческой работы
- 🌍 Выбор региона обработки данных при создании проекта — влияет на доступные сервисы
HMS Core: ключевые сервисы и аналоги GMS
Основная работа при портировании — замена вызовов Google-сервисов. HMS предоставляет набор «китов» (kits), каждый из которых закрывает определённую задачу. Сопоставление обычно прямое, но API отличаются по сигнатурам и ограничениям.
| Задача | Сервис Google | Аналог в HMS |
|---|---|---|
| Push-уведомления | Firebase Cloud Messaging | Push Kit |
| Карты и геолокация | Google Maps / Location | Map Kit / Location Kit |
| Авторизация | Google Sign-In | Account Kit |
| Встроенные покупки | Google Play Billing | IAP Kit |
| Аналитика | Firebase Analytics | Analytics Kit |
Если приложение должно работать и на устройствах с GMS, и на Huawei, имеет смысл абстрагировать сервисный слой: вынести push, карты и покупки за интерфейсы с двумя реализациями и выбирать нужную в рантайме по наличию соответствующих сервисов. Это увеличивает объём кода, но избавляет от поддержки двух отдельных сборок.
Конфигурационный файл agconnect-services.json подключается к проекту по аналогии с google-services.json — без него вызовы HMS API не пройдут авторизацию. Файл скачивается из AppGallery Connect после создания проекта и привязки пакета приложения.
Инструменты разработки: DevEco Studio и интеграция в Android Studio
Для разработки под HarmonyOS используется официальная среда DevEco Studio — IDE на базе IntelliJ-платформы с эмуляторами, профилировщиком и поддержкой ArkTS/ArkUI. Она распространяется бесплатно, но для полноценной работы требуется авторизация учётной записью Huawei.
Если речь идёт о портировании Android-приложения, отдельная IDE не нужна: HMS SDK подключается в привычной Android Studio через Gradle-зависимости. Типовая последовательность выглядит так:
// build.gradle (project)
repositories {
maven { url 'https://developer.huawei.com/repo/' }
}
Далее добавляются зависимости нужных китов и применяется плагин AppGallery Connect. Точные координаты зависимостей и актуальные версии стоит брать из официальной документации — они обновляются, и зашитые в старые туториалы номера версий могут быть несовместимы с текущим HMS Core.
☑️ Подключение HMS к Android-проекту
Тестирование на реальных устройствах
Эмуляторы покрывают не всё: поведение push-уведомлений, работа IAP и некоторые аппаратные функции корректно проверяются только на физическом устройстве с актуальной версией HMS Core. Проверку стоит вести минимум на одном смартфоне Huawei целевого региона продаж.
Для отладки подойдёт стандартная связка ADB и логирования — она работает с устройствами Huawei так же, как с любыми Android-смартфонами. Если физического устройства нет, в AppGallery Connect доступно облачное тестирование на реальных моделях; набор доступных устройств и лимиты зависят от текущих условий сервиса.
⚠️ Внимание: не полагайтесь на проверку «на одном устройстве одной модели». Версии EMUI, HarmonyOS и HMS Core у пользователей различаются, и сервис, работающий на вашем тестовом смартфоне, может вести себя иначе у части аудитории.
Публикация в AppGallery
Загрузка приложения происходит через AppGallery Connect: создаётся черновик релиза, загружается подписанный пакет, заполняются описания, скриншоты, возрастной рейтинг и политика конфиденциальности. После отправки приложение проходит модерацию — проверяются функциональность, соответствие контентным правилам и корректность использования HMS-сервисов.
Типичные причины отклонения, которые стоит проверить до отправки:
- 📵 Остаточные вызовы GMS, которые приводят к крашам на устройствах без Google-сервисов
- 📄 Отсутствующая или нерабочая ссылка на политику конфиденциальности
- 🔞 Некорректно указанный возрастной рейтинг
- 💳 Покупки, реализованные в обход IAP Kit там, где правила требуют его использования
Можно ли опубликовать один и тот же APK в Google Play и AppGallery?
Технически — да, если приложение не зависит от GMS или корректно деградирует без них. На практике чаще собирают отдельные варианты (flavors) для каждого магазина с разными сервисными зависимостями, чтобы не тащить лишний код в каждую сборку.
Сроки модерации и детальные требования к контенту меняются, поэтому перед первым релизом сверьтесь с актуальными правилами в документации AppGallery Connect. После публикации обновления проходят повторную проверку, что стоит учитывать при планировании релизов.
Распространённые ошибки при портировании
По опыту портирования чаще всего проблемы возникают не с самими HMS API, а с недооценёнными краевыми случаями. Приложение может корректно работать на тестовом устройстве и падать у пользователей из-за сценариев, которые не были проверены.
Первая группа ошибок — предположение, что сервис всегда доступен. Push-токен может быть не получен, HMS Core может быть отключён пользователем, а геолокация — запрещена на уровне системы. Каждый вызов должен иметь обработку отказа. Вторая группа — смешение стеков: подключение зависимостей GMS и HMS в одну сборку без разделения логики приводит к конфликтам и непредсказуемому поведению.
⚠️ Внимание: не используйте неофициальные обходные решения для запуска Google-сервисов на устройствах Huawei как основу продукта. Такие схемы нестабильны, могут нарушать правила магазина и ломаются при обновлениях системы.
FAQ: частые вопросы разработчиков
Нужно ли переписывать приложение полностью под Huawei?
Нет. Если приложение написано под Android, достаточно заменить зависимости от Google-сервисов на HMS-аналоги или сделать их опциональными. Полное переписывание требуется только при переходе на нативную разработку под HarmonyOS.
Можно ли тестировать HMS без физического устройства Huawei?
Частично — через эмулятор и облачное тестирование в AppGallery Connect. Однако push-уведомления, платежи и некоторые аппаратные функции надёжно проверяются только на реальном смартфоне с актуальным HMS Core.
Платная ли регистрация разработчика Huawei?
Создание учётной записи и доступ к основным инструментам бесплатны. Отдельные облачные сервисы и расширенные лимиты могут тарифицироваться — условия стоит уточнять в документации конкретного сервиса.
Что делать, если приложение отклонили при модерации AppGallery?
В ответе модерации указывается причина отклонения. Исправьте указанную проблему (чаще всего это краши из-за GMS-вызовов, политика конфиденциальности или возрастной рейтинг) и отправьте сборку повторно.
Подходит ли DevEco Studio для обычной Android-разработки?
DevEco Studio ориентирована на HarmonyOS-проекты. Для портирования Android-приложения под HMS удобнее привычная Android Studio с подключёнными HMS-зависимостями через Gradle.