2.0.0
Общие сведения
RuStore In-app updates SDK поддерживает актуальную версию приложения на устройстве пользователя. Это помогает пользователю увид еть обновления, оценить улучшение производительности и результат исправления ошибок.
Пример пользовательского сценария
Используйте RuStore In-app updates SDK для реализации различных способов обновлений. В настоящий момент поддерживаются: отложенное, тихое (без UI от RuStore) и принудительное обновление.
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK обновлений.
Условия корректной работы SDK
Для работы RuStore In-app updates SDK необходимо соблюдение следующих условий.
- Приложение загружено в Консоль RuStore.
- Приложение прошло модерацию (публиковать приложение необязательно).
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- ОС Android версии 7.0 или выше.
- Версия RuStore на устройстве пользователя актуальная.
- Пользователь авторизован в RuStore.
- Приложению RuStore разрешена установка приложений.
Подключение в проект
Для подключения выполните следу ющие шаги.
- Скопируйте проекты плагина из официального репозитория RuStore на GitFlic.
- Откройте в вашей IDE проект Android из папки
extension_libraries
. - Выполните сборку проекта командой
gradle assemble
. При успешном выполнении сборки в папкахappupdate_example/extension_rustore_appupdate/lib/android
иappupdate_example/extension_rustore_core/lib/android
будут созданы файлы:RuStoreDefoldAppUpdate.jar
RuStoreDefoldCore.jar
- Скопируйте папки
appupdate_example/extension_rustore_appupdate
иappupdate_example/extension_rustore_core
в корень вашего проекта.
Создание менеджера обновлений
Перед вызовом методов библиотеки необходимо создать менеджер обновлений.
function init(self)
rustoreappupdate.init()
end
Проверка наличия обновлений
Прежде чем запрашивать обновление, проверьте, доступно ли обновление для вашего приложения. Для проверки наличия обновлений вызовите методget_appupdateinfo
. При вызове данного метода проверяются следующие условия.
- На устройстве пользователя установлена актуальная версия RuStore.
- Пользователь и приложение не должны быть заблокированы в RuStore.
- Приложению RuStore разрешена установка приложений.
- Пользователь авторизован в RuStore.
Перед использованием метода необходимо единожды выполнить подписку на события:
rustore_get_app_update_info_success
;rustore_get_app_update_info_failure
.
function init(self)
rustorecore.connect("rustore_get_app_update_info_success", _on_get_app_update_info_success)
rustorecore.connect("rustore_get_app_update_info_failure", _on_get_app_update_info_failure)
-- Инициализация rustoreappupdate
end
function _on_get_app_update_info_success(self, channel, value)
local data = json.decode(value)
end
function _on_get_app_update_info_failure(self, channel, value)
local data = json.decode(value)
end
rustoreappupdate.get_appupdateinfo()
rustore_get_app_update_info_success
возвращает строку JSON, который содержит информацию о необходимости обновления. Запросите информацию заранее, чтобы выполнить запуск скачивания обновления без задержки в удобный для пользователя момент времени.
-
updateAvailability
— доступность обновления:UNKNOWN (int == 0)
— по умолчанию.UPDATE_NOT_AVAILABLE (int == 1)
— обновление не нужно.UPDATE_AVAILABLE (int == 2)
— обновление требуется загрузить или обновление уже загружено на устройство пользователя.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS (int == 3)
— обновление уже скачивается или установка уже запущена.
-
installStatus
— статус установки обновления, если пользоват ель уже устанавливает обновление в текущий момент времени:UNKNOWN (int == 0)
— по умолчанию.DOWNLOADED (int == 1)
— скачано.DOWNLOADING (int == 2)
— скачивается.FAILED (int == 3)
— ошибка.PENDING (int == 5)
— в ожидании.
-
availableVersionCode
— код версии обновления.
rustore_get_app_update_info_failure
возвращает строку JSON с информацией об ошибке. Структура ошибки описана в разделе Обработка ошибок.
Запуск скачивания обновления возможен только в том случае, если поле updateAvailability
содержит значение UPDATE_AVAILABLE
.