Hola, Amigos! На связи Тимур Моисеев, TeamLead Flutter.
Недавно столкнулись с ситуацией, где у пользователей перестала работать проверка новой версии в магазине. Для проверки использовали пакет upgrader.
В результате выяснилось, что некоторые операторы связи блокируют доступ к адресу https://play.google.com, без подключенного VPN на телефоне запрос не проходит.
Решения
Вариант 1:
Пакет upgrader позволяет получить информацию о версии приложения не из магазине, а со стороннего адреса, который вы укажете в настройках (см. картинка 1.)
По указанному адресу нужно положить файл формата xml:
<?xml version="1.0" encoding="utf-8"?>Вариант 2:
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
<channel>
<title>Debt Now App - Appcast</title>
<item>
<title>Version 1.15.0</title>
<description>Minor updates and improvements.</description>
<pubDate>Sun, 30 Dec 2018 12:00:00 +0000</pubDate>
<enclosure url="https://play.google.com/store/apps/details?id=com.moonwink.treasury" sparkle:version="1.15.0" sparkle:os="android" />
</item>
</channel>
</rss>
Мы пошли вторым путем и отказались от использования зависимости — upgrader.
В качестве файла с данными по версиям стали использовать json вместо xml. Кто-то спросит, почему не использовать запрос к серверу для получения актуальной версии приложения. Все просто — экономия времени backend-разработчика.
Суть осталась прежней:
1. Делаем запрос по адресу для получения нашего файла с версиями (см. картинку 2).
2. С помощью пакета package_info_plus получаем версию приложения.
3. Сравниваем версии.
Если вышла новая версия, тогда для каждой платформы отправляем пользователя обновить приложение.
Адреса для обновления: Android, IOS.

