Публикация приложений с картами в Google Play¶
Публикация приложений с картами в Google Play — процесс размещения мобильного приложения, использующего картографические сервисы Google, в магазине Google Play. Под «привязкой карты» обычно понимается интеграция Google Maps SDK в Android-приложение и его последующая публикация с корректной конфигурацией ключей API, манифеста и разрешений.
¶Google Maps SDK для Android
Для работы карт в Android-приложении используется Google Maps SDK for Android — проприетарная библиотека от Google, предоставляющая доступ к данным Google Maps, элементам управления (зум, компас, текущее положение), маркерам, полигонам, линиям и другим объектам картографического отображения.
Основные компоненты SDK:
- MapView или SupportMapFragment — контейнеры для отображения карты в интерфейсе приложения;
- GoogleMap — основной объект, управляющий состоянием карты (камера, слои, обработчики событий);
- Marker, Polyline, Polygon — объекты нанесения данных на карту.
¶Получение ключа API
Для доступа к Google Maps Platform требуется ключ API, привязанный к проекту в Google Cloud Console. Порядок действий:
- Создание проекта в Google Cloud Console (console.cloud.google.com).
- Включение API «Maps SDK for Android» в разделе «Библиотеки».
- Создание учётных данных типа «Ключ API» с ограничением по пакету Android-приложения (SHA-1 отпечаток) и имени пакета.
- Указание ключа в файле
AndroidManifest.xmlвнутри элемента<meta (организация признана экстремистской, деятельность запрещена в РФ)-data>с именемcom.google.android.geo.API_KEY.
Google рекомендует ограничивать ключи: указывать отпечаток SHA-1 и имя пакета, чтобы ключ нельзя было использовать в сторонних приложениях. Для отладки используется отпечаток debug-ключа (~/.android/debug.keystore), для релизной сборки — отпечаток release-ключа, которым подписывается публикуемый APK или AAB.
¶Подключение SDK в проекте
Современный способ подключения — через Google Play Services Gradle-плагин:
```gradle plugins { id 'com.android.application' id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
dependencies { implementation 'com.google.android.gms:play-services-maps:19.0.0' } ```
В AndroidManifest.xml добавляется разрешение INTERNET и, при необходимости, ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION для определения местоположения пользователя.
¶Подготовка к публикации в Google Play
Публикация приложения с картами в Google Play требует соблюдения ряда требований магазина:
¶Формат пакета
С 2021 года Google Play принимает только формат Android App Bundle (AAB) для новых приложений. APK остаётся допустимым для обновлений ранее опубликованных приложений.
¶Конфигурация ключа API в релизе
Для публикации ключ API должен быть создан с указанием SHA-1 релизного ключа подписи. Google Play App Signing — обязательная программа для новых разработчиков: при её использовании Google хранит релизный ключ и подписывает пакет от имени разработчика. SHA-1 подписи Google Play можно найти в разделе «Настройки» → «Приложение» → «Сертификаты подписи приложения» в консоли разработчика Google Play.
¶Разрешения и конфиденциальность
Google Play требует указывать в декларации конфиденциальности, какие данные собираются и как используются. Приложение, запрашивающее доступ к геолокации, обязано иметь политику конфиденциальности и заполнять форму Data Safety в консоли Play Console.
¶Тестирование
Перед публикацией необходимо пройти внутреннее и закрытое тестирование. Google Play Console предоставляет программы внутреннего тестирования (до 100 тестировщиков), закрытого тестирования (до 100 тестировщиков на 14 дней) и открытого тестирования (до 1000 тестировщиков).
¶Стоимость и квоты
Google Maps Platform предоставляет ежемесячный грант в 200 долларов США на бесплатное использование API для проектов, привязанных к платёжному аккаунту. Превышение гранта тарифицируется по прайсу Google Maps Platform. Для приложений с низкой нагрузкой гранта, как правило, достаточно.
¶Типичные ошибки
| Проблема | Причина |
|---|---|
| Карта отображается пустой | Неверный или отсутствующий ключ API, не включён Maps SDK for Android |
API key not valid | Ключ не ограничен SHA-1 и именем пакета, либо указан неверный отпечаток |
| Карта работает в debug, но не в release | Используется debug SHA-1, а релизная сборка подписана другим ключом |
| Приложение отклонено при модерации | Отсутствует политика конфиденциальности при запросе геолокации |
¶Альтернативы
Помимо Google Maps, в Android-приложениях применяются OpenStreetMap (через библиотеки osmdroid, MapLibre), Яндекс.Карты (Яндекс.Карты SDK), 2ГИС. В России и ряде стран СНГ альтернативные провайдеры часто используются в силу ограничений или требований локализации данных.
Источники:
- Документация Google Maps Platform (developers.google.com/maps)
- Документация Android Developers (developer.android.com)
- Справка Google Play Console (support.google.com/googleplay/android-developer)
