После многих часов чтения документации Google становится очевидным, что реализация загрузки расширения APK со всем механизмом лицензирования занимает 60% кода моего приложения. И да, мне действительно нужны файлы расширения (более 100 МБ)
Итак, что я сделал, так это прочитал все эти документы о расширениях APK, внедрил их одно за другим и протестировал. Кажется, теперь все работает, пока я не получаю URL-адреса для этих файлов расширения.
Проблема, с которой я столкнулся (и я проверил ключ, учетную запись разработчика, UUID и другие очевидные вещи) - лицензирование проходит как ЛИЦЕНЗИОННОЕ, но в ответе политики лицензирования не получено никаких дополнений. В частности, метод com.google.android.vending.licensing.APKExpansionPolicy#processServerResponse()
имеет параметр rawData
, внутри которого находится поле extras
. В моем тестовом примере этот extras
всегда пуст.
Теперь я попытался загрузить приложение через бета-канал (в магазине нет рабочих apk), файлы расширения не были загружены даже тогда! Я предполагаю, что мои настройки в магазине Google Play каким-то образом неверны, но я понятия не имею, что именно мне не хватает. Это стало очень болезненным процессом для такого простого приложения, как это, реализующего десятки методов и изучающего тонны API просто для того, чтобы иметь возможность разместить где-нибудь один zip-файл. Я мог бы разместить этот файл сам и реализовать механизм загрузки много лет назад.