По мере развития приложения в новых выпусках могут появляться критические изменения в API серверной части, устраняться критические уязвимости в системе безопасности или заменяться устаревшие сервисы и модели искусственного интеллекта. В таких случаях более ранние версии приложений могут перестать работать надежно или безопасно.
С помощью Remote Config вы можете динамически управлять требованиями к версии приложения из облака. Задав параметры версии в Remote Config, вы можете предлагать или требовать от пользователей обновить приложение, не развертывая собственную серверную инфраструктуру и не выпуская экстренное обновление.
Выберите стратегию обновления
Remote Config предоставляет параметры версии, которые оцениваются на стороне клиента. Это позволяет настроить интерфейс обновления приложения в соответствии с одной из двух стратегий в зависимости от важности изменений:
- Принудительное (блокирующее) обновление. Если более ранняя версия приложения несовместима с вашим бэкендом или представляет угрозу безопасности, вы можете заблокировать доступ к приложению, пока пользователь не обновит его. Если установленная версия более ранняя, чем требуемая минимальная, вы можете настроить приложение так, чтобы оно показывало диалоговое окно, которое нельзя закрыть и которое направляет пользователя в магазин приложений платформы для установки последней версии.
- Гибкое (необязательное) обновление. Если в новой версии появились новые функции, улучшена производительность или исправлены незначительные ошибки, вы можете настроить показ баннера или запроса, который можно закрыть. Это позволит пользователям обновить приложение, когда им будет удобно, и продолжить работу с ним.
Шаг 1. Настройте параметры в консоли Firebase
Чтобы управлять версиями приложений, задайте параметры в шаблоне Remote Config:
- В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная конфигурация) > Parameters (Параметры).
- Нажмите Добавить параметр (или Создать конфигурацию, если это ваш первый параметр).
- Задайте следующие параметры:
minimum_version– строка, представляющая самую раннюю поддерживаемую версию приложения (например,"2.4.0"). Приложения более ранних версий будут заблокированы до обновления.latest_version(необязательно) – строка, представляющая последнюю доступную версию приложения (например,"2.5.1"). В приложениях, версия которых находится междуminimum_versionиlatest_version, может показываться необязательная рекомендация по обновлению.update_url(необязательно) – URL магазина, где пользователи могут скачать обновление (например, страница приложения в Google Play или Apple App Store).
- При необходимости добавьте условия для определенных платформ:
- Поскольку в приложениях для Android и Apple часто используются разные версии и URL магазинов, вы можете добавить условные значения для каждой платформы в один и тот же параметр.
- Нажмите Добавить значение для условия > Создать условие. Укажите название условия (например,
Android AppилиiOS App), выберите Приложение в качестве правила таргетинга и укажите свое приложение. - Задайте подходящую строку версии для каждого условия платформы и оставьте значение по умолчанию в качестве резервного.
- Нажмите Сохранить, а затем Опубликовать изменения, чтобы применить шаблон.
Шаг 2. Реализуйте проверку версии на стороне клиента
При запуске клиента проверьте версию установленного приложения по параметрам Remote Config:
- Задайте значения по умолчанию в приложении. Всегда указывайте безопасные значения по умолчанию в пакете приложения. Например, задайте для
minimum_versionзначение, соответствующее первой версии приложения, например"1.0.0". Это позволит приложению работать в обычном режиме, если устройство не подключено к интернету или первый запрос на получение данных не выполнен. Инструкции для разных платформ приведены в статье Как скачать шаблоны по умолчанию для Remote Config. - Получение и активация Remote Config. Получайте и активируйте последние значения шаблона при запуске приложения.
Сравните версии. Получите активные строки
minimum_versionиlatest_versionи сравните их с версией установленного приложения.Выполните действия на основе сравнения версий:
- Принудительное обновление. Если версия
current_versionвыпущена раньше, чемminimum_version, показывать полноэкранное модальное оповещение, которое нельзя закрыть. Отключите навигацию по остальным разделам приложения и добавьте кнопку, которая открываетupdate_urlв магазине приложений. - Предложить необязательное обновление. Если
current_versionменьшеlatest_version, показать диалоговое окно или уведомление, которое можно закрыть. В нем должно быть указано, что доступно обновление, и предложены варианты Обновить сейчас и Позже. - Разрешить доступ. В противном случае разрешить пользователю войти в приложение.
- Принудительное обновление. Если версия
Рекомендации
- Добавьте прослушиватель в реальном времени. Если обновление версии требуется из-за проблем с безопасностью или серьезного ухудшения UX, добавление прослушивателя Remote Config в реальном времени в приложение может помочь обеспечить немедленное вступление в силу изменений требований к версии на активных устройствах, не дожидаясь следующей загрузки по расписанию или перезапуска приложения.
- Проведите тестирование с ограниченной группой пользователей. Прежде чем повышать
minimum_versionдля всех пользователей рабочей версии, протестируйте условие с ограниченной группой пользователей или выберите внутренних тестировщиков, используя специальные свойства пользователей. Это позволит убедиться, что модальное окно блокировки и ссылки на магазины отображаются правильно. - Используйте API для обновления приложений. На устройствах Android можно интегрировать Google Play In-App Updates вместе с проверками Remote Config, чтобы пользователи могли скачивать и устанавливать обновления, не выходя из приложения.
- Ознакомьтесь с контрольными списками для рабочей версии. Прочитайте контрольный список Firebase для запуска и контрольный список AI Logic для рабочей версии, чтобы узнать больше о подготовке приложения и ИИ-функций к запуску.