Google Play LIcensing - что значит "отвечать нормально"?

Здравствуйте и спасибо заранее за ваш ответ.

Я загрузил свое лицензированное приложение в Play Store. Я могу тестировать и получать ожидаемые результаты со всеми ответами лицензий на статические тесты (Лицензированные, Не лицензированные и т. Д.). Все идет нормально.

Но если у моего тестового устройства нет подключения к Интернету, проверка лицензии ВСЕГДА не проходит. Это не то, как я понимаю политику ServerManaged для работы. Если в недавнем прошлом было установлено, что установка была лицензирована, политика должна кэшировать информацию в общем файле prefs и использовать ее, если нет подключения к Интернету.

Поэтому я временно прокомментировал обфускацию данных в файле prefs, который создает система лицензий. Когда я смотрю на данные, я вижу, что число повторов и другие вещи установлены на ноль. Это не то, что я ожидаю. С такими данными я веду себя так, как будто я использую строгую политику (а я нет).

Я предполагаю, что это является артефактом использования системы тестовых ответов и что "реальные" пользователи будут получать фактические данные в своих обфусцированных общих настройках, что позволяет им работать в отсутствие подключения к Интернету.

Поэтому я попытался установить ответ сервера на "Нормальный ответ". Когда я делаю это, я ВСЕГДА получаю НЕ ЛИЦЕНЗИОННЫЙ ответ. И я думаю, в этом есть какой-то смысл, потому что я не купил приложение и не загрузил его.

Так как я, как разработчик, могу испытать именно то, что испытывают мои конечные пользователи? Я хочу иметь возможность проверить, как все это работает без подключения к интернету, например. Я не могу понять, как это сделать? Думаю, я мог бы купить собственное приложение, но я не уверен, что оно будет работать, поскольку тестовое устройство подключено к тестовой учетной записи. И для разработчика нет смысла приобретать собственное приложение.

Спасибо за любые предложения.

2 ответа

Я думаю, что нашел возможное решение вашей проблемы.

Что я сделал: во-первых, я создал группу Google для альфа / бета-тестеров своего приложения (конечно, после загрузки приложения). Затем я вошел в эту группу Google и принял приглашение. После этого я вставил свою учетную запись разработчика gmail в список пользователей для проверки лицензии и установил ответ сервера "RESPOND_NORMALLY".

Таким образом, ответ сервера всегда будет "ЛИЦЕНЗИРОВАН" для моей учетной записи, и срок действия не истечет через 2 минуты. Это как я купил приложение!

Единственным ограничением для этого трюка является то, что вы должны загружать свое приложение в бета-версию или альфа-слот вашей консоли разработчика Google, но после этого вы также можете получить ответ "LICENSED" с помощью приложения отладки, загруженного на ваше устройство с использованием обычного Eclipse IDE! Вам не нужно ждать генерации ссылки для загрузки тестового приложения (которое генерируется очень медленно... До 24 часов!).

Я тоже испытал это разочарование. Я тоже хочу иметь такой же опыт, как и мои клиенты. Как только я устанавливаю "Отвечать нормально", я всегда вижу ответ "НЕ ЛИЦЕНЗИРОВАННЫЙ", который кажется ОЧЕНЬ СУБПОТИМАЛЬНЫМ. Я ВЕРИМ, что Google должен добавить, это параметр ** 'RESPOND_NORMALLY_AND_LICENSED' **. Это сделало бы то, что нужно.

Суть проблемы: если я оставляю свое приложение как "ЛИЦЕНЗИРОВАННОЕ", которое отлично работает, когда у меня есть подключение к Интернету, то через 2 минуты без подключения мое приложение перестает работать по лицензии (так как кэш установлен на сервере Google Play до 2 минут). Таким образом, если я хочу использовать свое собственное приложение изо дня в день, мне нужно создать приложение с отключенным лицензированием - то, чего никогда не увидят мои клиенты. Это ОЧЕНЬ плохая идея.

Мы все давно узнали: "Вы должны есть свой" корм для собак "как разработчик".

  • Я сообщил об этом как об ошибке "Developer Console", но это, возможно, вместо "Bug", очень сильное предложение - и, казалось бы, его было бы легко реализовать.

Чтобы обойти эту проблему, я добавил код в ServerManagedPolicy.processServerResponse(), чтобы просто добавить два месяца времени лицензии и вызвать setValidityTimestamp(). Я надеюсь, что это помогает кому-то еще. Теперь я доволен ---

Другие вопросы по тегам