Прежде чем вы начнете добавлять проверку лицензии в свое приложение, вам необходимо настроить свою учетную запись публикации Google Play, среду разработки и все тестовые учетные записи, необходимые для проверки вашей реализации.
Настройка учетной записи издателя
Если у вас еще нет учетной записи издателя Google Play, вам необходимо зарегистрировать ее, используя свою учетную запись Google, и принять условия обслуживания Google Play.
Дополнительные сведения см. в разделе Начало работы с публикацией .
Если у вас уже есть учетная запись издателя в Google Play, используйте консоль Play для настройки лицензирования.
Используя консоль Google Play, вы можете:
- Получите открытый ключ для конкретного приложения для лицензирования.
- Отладка и тестирование реализации лицензирования приложения перед публикацией приложения.
- Публикуйте приложения, в которые вы добавили поддержку лицензирования.
Административные настройки для лицензирования
Вы можете управлять несколькими административными элементами управления лицензированием Google Play в Play Console. Элементы управления позволяют:
- Настройте несколько «тестовых учетных записей», идентифицированных по адресу электронной почты. Сервер лицензирования позволяет пользователям, вошедшим в тестовые учетные записи на устройстве или эмуляторе, отправлять проверки лицензий и получать ответы на статические тесты. Вы можете настроить учетные записи на странице сведений об учетной записи Play Console.
- Настройте статические тестовые ответы, которые сервер отправляет, когда он получает проверку лицензии для приложения, загруженного в учетную запись издателя, от пользователя, вошедшего в учетную запись издателя или тестовую учетную запись. Вы можете настроить тестовые ответы на странице сведений об учетной записи Play Console.
- Получите открытый ключ приложения для лицензирования. При реализации лицензирования в приложении необходимо скопировать строку открытого ключа в приложение. Открытый ключ приложения для лицензирования можно получить на странице «Службы и API» (в разделе «Все приложения»).
Дополнительные сведения о том, как работать с тестовыми учетными записями и ответами на статические тесты, см. в разделе «Настройка среды тестирования» ниже.
Настройка среды разработки
Настройка среды для лицензирования включает в себя следующие задачи:
- Настройка среды выполнения для разработки
- Загрузка LVL в ваш SDK
- Настройка библиотеки проверки лицензий
- Включение проекта библиотеки LVL в ваше приложение
В разделах ниже описаны эти задачи. Когда вы закончите настройку, вы можете приступить к добавлению лицензий в ваше приложение .
Для начала вам необходимо настроить подходящую среду выполнения, в которой вы сможете запускать, отлаживать и тестировать реализацию проверки и соблюдения лицензий в вашем приложении.
Настройка среды выполнения
Как описано ранее, приложения проверяют статус лицензирования не путем прямого обращения к серверу лицензирования, а путем привязки к сервису, предоставляемому приложением Google Play, и инициации запроса на проверку лицензии. Затем служба Google Play обрабатывает прямую связь с сервером лицензирования и, наконец, направляет ответ обратно в ваше приложение. Для отладки и тестирования лицензирования в вашем приложении вам необходимо настроить среду выполнения, включающую необходимую службу Google Play, чтобы ваше приложение могло отправлять запросы на проверку лицензии на сервер лицензирования.
Существует два типа среды выполнения, которые вы можете использовать:
- Устройство на платформе Android с приложением Google Play или
- Эмулятор Android с надстройкой Google API уровня API 8 (выпуск 2) или выше.
Запуск на устройстве
Чтобы использовать устройство под управлением Android для отладки и тестирования лицензий, оно должно:
- Запустите совместимую версию платформы Android 1.5 или новее (уровень API 3 или выше) и
- Запустите образ системы, на котором предустановлено клиентское приложение Google Play.
Если Google Play не предустановлен в образе системы, ваше приложение не сможет взаимодействовать с сервером лицензирования Google Play.
Общие сведения о том, как настроить устройство для использования при разработке приложений Android, см. в разделе «Использование аппаратных устройств» .
Запуск на эмуляторе Android
Если у вас нет доступного устройства, вы можете использовать эмулятор Android для отладки и тестирования лицензирования.
Поскольку платформы Android, представленные в Android SDK, не включают Google Play, вам необходимо загрузить надстройку API Google API уровня 8 (или выше) из репозитория SDK. После загрузки дополнения вам необходимо создать конфигурацию AVD, использующую этот образ системы.
Надстройка Google API не включает в себя полный клиент Google Play. Однако он обеспечивает:
- Фоновая служба Google Play, реализующая удаленный интерфейс
ILicensingService
, благодаря чему ваше приложение может отправлять проверки лицензии по сети на сервер лицензирования. - Набор базовых служб учетных записей, которые позволяют вам добавить учетную запись Google на AVD и войти в систему, используя учетные данные своей учетной записи издателя или учетные данные тестовой учетной записи.
Вход в систему с использованием учетной записи издателя или тестовой учетной записи позволяет вам отлаживать и тестировать приложение без его публикации. Дополнительную информацию см. в разделе «Вход в авторизованную учетную запись» ниже.
Через SDK Manager доступно несколько версий надстройки Google API, но только версия для Android 2.2 и выше включает необходимые сервисы Google Play.
Чтобы настроить эмулятор для добавления лицензий в приложение, выполните следующие действия:
- Запустите Android SDK Manager, доступный в меню «Инструменты Android Studio» ( Инструменты > Android > SDK Manager ) или выполнив
<sdk>/tools/android sdk
. - Выберите и загрузите API Google для целевой версии Android (должна быть Android 2.2 или более поздней версии).
- После завершения загрузки откройте AVD Manager, доступный в меню «Инструменты Android Studio» ( Инструменты > Android > AVD Manager ) или выполнив
<sdk>/tools/android avd
. - В окне диспетчера виртуальных устройств Android выберите + Создать виртуальное устройство , чтобы задать детали конфигурации для нового AVD.
- В окне «Конфигурация виртуального устройства» выберите оборудование устройства, затем нажмите «Далее» .
- Выберите Google API в качестве образа системы для запуска на новом AVD, затем нажмите «Далее» .
- Присвойте AVD описательное имя, а затем при необходимости задайте другие детали конфигурации.
- Нажмите «Готово» , чтобы создать новую конфигурацию AVD, которая появится в списке доступных виртуальных устройств Android.
Если вы не знакомы с AVD или с тем, как их использовать, см. «Управление виртуальными устройствами» .
Обновление конфигурации вашего проекта
После настройки среды выполнения, соответствующей описанным выше требованиям (на реальном устройстве или в эмуляторе), обязательно обновите проект приложения или создайте сценарии по мере необходимости, чтобы скомпилированные файлы .apk
, использующие лицензирование, были развернуты в эта среда. В частности, если вы разрабатываете в Android Studio, убедитесь, что вы настроили конфигурацию запуска/отладки, предназначенную для соответствующего устройства или AVD.
Вам не нужно вносить какие-либо изменения в конфигурацию сборки вашего приложения при условии, что проект уже настроен для компиляции со стандартной библиотекой Android 1.5 (API уровня 3) или более поздней версии. Добавление лицензии в приложение не должно оказывать никакого влияния на конфигурацию сборки приложения.
Загрузка LVL
Библиотека проверки лицензий (LVL) — это набор вспомогательных классов, которые значительно упрощают работу, необходимую для добавления лицензий в ваше приложение. Во всех случаях мы рекомендуем вам скачать LVL и использовать его в качестве основы для реализации лицензирования в вашем приложении.
Библиотека проверки лицензий (LVL) разработана на GitHub. Вы можете клонировать репозиторий LVL и установить его как проект библиотеки. Клонируйте репозиторий, введя в командной строке следующее:
git clone https://github.com/google/play-licensing
Репозиторий включает в себя:
- Исходники LVL, хранящиеся внутри проекта библиотеки Android.
- Пример приложения под названием «образец», зависящего от проекта библиотеки LVL. В примере показано, как приложение использует вспомогательные классы библиотеки для проверки и обеспечения соблюдения лицензий.
Настройка библиотеки проверки лицензий
После загрузки LVL на свой компьютер вам необходимо настроить его в своей среде разработки либо как проект библиотеки Android, либо скопировав (или импортировав) исходные коды библиотеки непосредственно в существующий пакет приложения. В общем, рекомендуется использовать LVL в качестве библиотечного проекта, поскольку он позволяет повторно использовать код лицензирования в нескольких приложениях и упрощает его поддержку с течением времени. Обратите внимание, что LVL не предназначен для отдельной компиляции и добавления в приложение в виде статического файла .jar.
Рекомендуемый способ использования LVL — настроить его как новый проект библиотеки Android. Библиотечный проект — это тип проекта разработки, в котором хранится общий исходный код и ресурсы Android. Другие проекты приложений Android могут ссылаться на проект библиотеки и во время сборки включать его скомпилированные исходные коды в свои файлы .apk
. В контексте лицензирования это означает, что вы можете выполнить большую часть разработки лицензирования один раз в проекте библиотеки, а затем включить исходные коды библиотеки в различные проекты приложений. Таким образом, вы можете легко обеспечить единообразную реализацию лицензирования для всех ваших проектов и поддерживать ее централизованно. Если вы не знакомы с библиотечными проектами или с тем, как их использовать, см. «Управление проектами» .
LVL предоставляется в виде сконфигурированного проекта библиотеки — как только вы его загрузите, вы можете сразу же начать его использовать.
Если вы работаете в Android Studio, вам необходимо добавить LVL в свой проект в качестве нового модуля.
- Используйте окно «Импортировать модуль из исходного кода», чтобы импортировать библиотечный модуль, выбрав «Файл» > «Создать» > «Импортировать модуль» .
- В окне «Импорт модуля из исходного кода » в исходном каталоге введите каталог
library
LVL (каталог, содержащий файл AndroidManifest.xml библиотеки) в качестве корня проекта (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml
), затем выберите Далее . - Нажмите «Готово» , чтобы импортировать библиотечный модуль.
Дополнительные сведения о том, как работать с библиотечными модулями в Android Studio, см. в разделе Создание библиотеки Android .
Включение источников проекта библиотеки LVL в ваше приложение.
Если вы хотите использовать источники LVL в качестве проекта библиотеки, вам необходимо добавить ссылку на проект библиотеки LVL в свойства проекта вашего приложения. Это указывает инструментам сборки включать источники проекта библиотеки LVL в ваше приложение во время компиляции. Процесс добавления ссылки на проект библиотеки зависит от вашей среды разработки, как описано ниже.
Если вы разрабатываете в Android Studio, вы уже должны были добавить в свой проект библиотечный модуль, как описано в предыдущем разделе. Если вы еще этого не сделали, сделайте это сейчас, прежде чем продолжить.
Если вы разрабатываете с использованием инструментов командной строки SDK, перейдите в каталог, содержащий проект приложения, и откройте файл project.properties
. Добавьте в файл строку, указывающую ключ android.library.reference.<n>
и путь к библиотеке. Например:
android.library.reference.1=path/to/library_project
Альтернативно вы можете использовать эту команду для обновления свойств проекта, включая ссылку на проект библиотеки:
android update lib-project --target <target_ID> \ --path path/to/my/app_project \ --library path/to/my/library_project
Дополнительные сведения о работе с библиотечными проектами см. в разделе Настройка библиотечного проекта .
Настройка среды тестирования
Консоль Google Play предоставляет инструменты настройки, которые позволяют вам и другим пользователям протестировать лицензирование вашего приложения перед его публикацией. При реализации лицензирования вы можете использовать инструменты Play Console для проверки политики вашего приложения и обработки различных ответов на вопросы лицензирования и ошибок.
К основным компонентам тестовой среды для лицензирования относятся:
- Конфигурация «Тестовый ответ» в вашей учетной записи издателя, которая позволяет вам установить статический ответ о лицензировании, возвращаемый, когда сервер обрабатывает проверку лицензии для приложения, загруженного в учетную запись издателя, от пользователя, вошедшего в учетную запись издателя или тестовую учетную запись.
- Необязательный набор тестовых учетных записей, которые получат ответ статического теста при проверке лицензии загруженного вами приложения (независимо от того, опубликовано приложение или нет).
- Среда выполнения приложения, включающая приложение Google Play или надстройку API Google, в которой пользователь входит в учетную запись издателя или одну из тестовых учетных записей.
Правильная настройка тестовой среды включает в себя:
- Установка ответов статического теста , возвращаемых сервером лицензирования.
- Настройка тестовых аккаунтов по мере необходимости.
- Правильный вход в эмулятор или устройство перед запуском проверки лицензии.
В разделах ниже представлена дополнительная информация.
Настройка тестовых ответов для проверки лицензии
Google Play предоставляет настройку конфигурации в вашей учетной записи издателя, которая позволяет вам переопределить обычную обработку проверки лицензии и вернуть указанный статический код ответа. Этот параметр предназначен только для тестирования и применяется только к проверкам лицензии для загруженных вами приложений, выполненных любым пользователем, вошедшим в эмулятор или устройство с использованием учетных данных учетной записи издателя или зарегистрированной тестовой учетной записи. Для остальных пользователей сервер всегда обрабатывает проверки лицензий по обычным правилам.
Чтобы настроить тестовый ответ для своей учетной записи, войдите в свою учетную запись издателя и нажмите «Редактировать профиль». На странице «Редактирование профиля» найдите меню «Тестовый ответ» на панели «Лицензирование», как показано ниже. Вы можете выбрать из полного набора действительных кодов ответа сервера, чтобы контролировать ответ или условие, которое вы хотите протестировать в своем приложении.
В общем, вам следует обязательно протестировать реализацию лицензирования вашего приложения с каждым кодом ответа, доступным в меню «Проверить ответ». Описание кодов см. в разделе Коды ответов сервера в Справочнике по лицензированию .
Обратите внимание, что настроенный вами тестовый ответ применяется ко всей учетной записи, то есть он применяется не к одному приложению, а ко всем приложениям, связанным с учетной записью издателя. Если вы тестируете несколько приложений одновременно, изменение тестового ответа повлияет на все эти приложения при следующей проверке лицензии (если пользователь вошел в эмулятор или устройство с помощью учетной записи издателя или тестовой учетной записи).
Прежде чем вы сможете успешно получить тестовый ответ для проверки лицензии, вам необходимо войти в систему на устройстве или эмуляторе, на котором установлено приложение и с которого оно отправляет запросы на сервер. В частности, вы должны выполнить вход, используя либо свою учетную запись издателя, либо одну из тестовых учетных записей, которые вы настроили. Дополнительную информацию о тестовых учетных записях см. в следующем разделе.
Список доступных тестовых ответов и их значения см. в разделе Коды ответов сервера.
Настройка тестовых аккаунтов
В некоторых случаях вы можете позволить нескольким группам разработчиков протестировать лицензирование приложений, которые в конечном итоге будут опубликованы через вашу учетную запись издателя, но без предоставления им доступа к учетным данным для входа в вашу учетную запись издателя. Чтобы удовлетворить эту потребность, консоль Google Play позволяет вам настроить одну или несколько дополнительных тестовых учетных записей — учетных записей, которым разрешено отправлять запросы на сервер лицензирования и получать статические тестовые ответы от вашей учетной записи издателя.
Тестовые учетные записи — это стандартные учетные записи Google, которые вы регистрируете в своей учетной записи издателя, чтобы они получали тестовый ответ для загруженных вами приложений. Затем разработчики могут войти на свои устройства или эмуляторы, используя учетные данные тестовой учетной записи, и инициировать проверку лицензий из установленных приложений. Когда сервер лицензирования получает проверку лицензии от пользователя тестовой учетной записи, он возвращает ответ статического теста, настроенный для учетной записи издателя.
Обязательно существуют ограничения на доступ и разрешения, предоставляемые пользователям, вошедшим в систему через тестовые учетные записи, в том числе:
- Пользователи тестовой учетной записи могут запрашивать сервер лицензирования только для приложений, которые уже загружены в учетную запись издателя.
- Пользователи тестовой учетной записи не имеют разрешения на загрузку приложений в вашу учетную запись издателя.
- Пользователи тестовой учетной записи не имеют разрешения на установку статического тестового ответа учетной записи издателя.
В таблице ниже приведены различия в возможностях между учетной записью издателя, тестовой учетной записью и любой другой учетной записью.
Тип учетной записи | Можно ли проверить лицензию перед загрузкой? | Можно ли получить ответ на тест? | Можно ли установить тестовый ответ? |
---|---|---|---|
Аккаунт издателя | Да | Да | Да |
Тестовый аккаунт | Нет | Да | Нет |
Другой | Нет | Нет | Нет |
Регистрация тестовых аккаунтов на аккаунте издателя
Для начала вам необходимо зарегистрировать каждую тестовую учетную запись в своей учетной записи издателя. Как показано на рисунке 2, вы регистрируете тестовые учетные записи на панели «Лицензирование» на странице «Редактирование профиля» вашей учетной записи издателя. Просто введите учетные записи в виде списка, разделенного запятыми, и нажмите « Сохранить» , чтобы сохранить изменения в профиле.
Вы можете использовать любую учетную запись Google в качестве тестовой учетной записи. Если вы хотите владеть тестовыми учетными записями и управлять ими, вы можете создать их самостоятельно и передать учетные данные своим разработчикам или тестировщикам.
Обработка загрузки и распространения приложений для пользователей тестовой учетной записи.
Как упоминалось выше, пользователи тестовых учетных записей могут получать статические тестовые ответы только для приложений, загруженных в учетную запись издателя. Поскольку у этих пользователей нет разрешения на загрузку приложений, вам как издателю придется работать с этими пользователями, чтобы собирать приложения для загрузки и распространять загруженные приложения для тестирования. Вы можете осуществлять сбор и распределение любым удобным способом.
Как только приложение будет загружено и станет известно серверу лицензирования, разработчики и тестировщики смогут продолжить модификацию приложения в своей локальной среде разработки без необходимости загружать новые версии. Вам нужно загрузить новую версию только в том случае, если локальное приложение увеличивает атрибут versionCode
в файле манифеста.
Распространение вашего открытого ключа среди пользователей тестовой учетной записи
Сервер лицензирования обрабатывает ответы статического теста обычным способом, включая подписание данных ответа лицензии, добавление дополнительных параметров и т. д. Чтобы поддержать разработчиков, которые реализуют лицензирование с использованием тестовых учетных записей, а не учетной записи издателя, вам необходимо передать им открытый ключ приложения для лицензирования. Разработчики, не имеющие доступа к Play Console, не имеют доступа к открытому ключу приложения, а без ключа они не смогут проверять ответы на лицензии.
Обратите внимание: если вы по какой-то причине решите создать новую пару лицензионных ключей для приложения, вам необходимо уведомить всех пользователей тестовых учетных записей. Для тестировщиков вы можете встроить новый ключ в пакет приложения и разослать его пользователям. Разработчикам вам нужно будет передать им новый ключ напрямую.
Вход в авторизованную учетную запись в среде выполнения
Служба лицензирования предназначена для определения того, имеет ли данный пользователь лицензию на использование данного приложения — во время проверки лицензии приложение Google Play собирает идентификатор пользователя из основной учетной записи в системе и отправляет его на сервер вместе с пакетом. название приложения и другая информация. Однако если информация о пользователе отсутствует, проверка лицензии не может быть успешной, поэтому приложение Google Play завершает запрос и возвращает приложению ошибку.
Во время тестирования, чтобы ваше приложение могло успешно запросить сервер лицензирования, вы должны убедиться, что вы вошли в учетную запись на устройстве или эмуляторе , используя:
- Учетные данные учетной записи издателя или
- Учетные данные тестовой учетной записи, зарегистрированной под учетной записью издателя.
Вход в аккаунт Google на эмуляторе
Если вы тестируете лицензирование на эмуляторе, вам необходимо войти в учетную запись Google на эмуляторе. Если вы не видите возможность создать новую учетную запись Google, возможно, проблема заключается в том, что на вашем AVD используется стандартный образ системы Android, а не надстройка API Google, API 8 (выпуск 2) или выше.
Дополнительную информацию см. в разделе Настройка среды выполнения выше.
Вход в систему с использованием учетной записи издателя дает преимущество, позволяющее вашим приложениям получать ответы на статические тесты еще до того, как приложения будут загружены в Play Console.
Если вы являетесь частью более крупной организации или работаете с внешними группами над приложениями, которые будут опубликованы через ваш сайт, вы, скорее всего, захотите вместо этого распространить тестовые учетные записи, а затем использовать их для входа во время тестирования.
Чтобы войти в систему на устройстве или эмуляторе, выполните следующие действия. Предпочтительный подход — войти в систему как основная учетная запись. Однако, если на устройстве или эмуляторе уже используются другие учетные записи, вы можете создать дополнительную учетную запись и войти в нее, используя учетные данные издателя или тестовой учетной записи.
- Откройте «Настройки» > «Аккаунты и синхронизация».
- Выберите «Добавить учетную запись» и выберите добавление учетной записи Google.
- Выберите «Далее» , а затем «Войти» .
- Введите имя пользователя и пароль либо учетной записи издателя, либо тестовой учетной записи, зарегистрированной в учетной записи издателя.
- Выберите Войти . Система выполнит вход в новую учетную запись.
После входа в систему вы можете начать тестирование лицензирования в своем приложении (если вы выполнили описанные выше шаги по интеграции LVL). Когда ваше приложение инициирует проверку лицензии, оно получит ответ, содержащий ответ статического теста, настроенный в учетной записи издателя.
Обратите внимание: если вы используете эмулятор, вам нужно будет входить в учетную запись издателя или тестовую учетную запись каждый раз, когда вы стираете данные при перезапуске эмулятора.
После завершения процедур настройки перейдите к разделу «Добавление лицензирования в ваше приложение» .