Что такое обновление URL-приложения?
Обновление URL-приложения — это легковесный механизм обновления, при котором разработчики самостоятельно управляют файлами обновления. Его основным преимуществом является то, что нет необходимости поддерживать адреса файлов в нескольких местах, и разработчики могут напрямую контролировать весь процесс выпуска версии. Он особенно подходит для проектов с открытым исходным кодом, коммерческих проектов с индивидуальным ритмом выпуска или сценариев, требующих унифицированной кросс-платформенной стратегии обновления, поддерживая обновление и распространение пакетов установки приложений и различных пользовательских файлов.
1. Основные концепции
1.1 Самостоятельное хранение файлов
Основная логика заключается в том, чтобы самостоятельно размещать "пакет установки приложения" (APK/EXE/DMG/IPA и т.д.) или "пользовательские файлы обновления" на общедоступных веб-сервисах, позволяя клиентам активно запрашивать проверку и скачивание.
Распространенные сервисы для хранения: функциональность Releases на GitHub/Gitee/GitLab, самостоятельные HTTPS-серверы, сервисы хранения объектов (например, AWS S3, Alibaba Cloud OSS и т.д.).
2. Типовой рабочий процесс
Запуск клиента/периодический триггер: Активно отправить запрос на обновление для получения информации о версии удаленного файла (например, номер версии файла, метаданные файла и т.д.);
Сравнение версий: Сравнить текущий номер версии локального приложения с номером версии, соответствующим удаленному файлу обновления;
Ветвление решения: Если номер удаленной версии > номер локальной версии, запустить процесс обновления;
Отображение пользователям подсказок об обновлении (журналы обновлений и другая информация);
Ожидание подтверждения пользователя (при необходимости можно настроить принудительные обновления);
После подтверждения пользователя напрямую скачать соответствующий пакет установки приложения или пользовательский файл через настроенный "URL файла обновления";
После завершения загрузки запустить последующие процессы в зависимости от типа файла (пакеты установки приложений автоматически запускают установку, пользовательские файлы выполняют предварительно настроенную бизнес-логику), и процесс завершается.
Если номер удаленной версии ≤ номер локальной версии: Отобразить пользователю подсказку "в настоящее время уже самая последняя версия" (или тихо завершить процесс), и процесс завершается.
3. Основные моменты реализации
Спецификации конфигурации размещения версий
GitHub/Gitee/GitLab: Предпочтительно использовать официальную функцию Releases, загружать пакеты установки приложений или пользовательские файлы обновления в качестве вложений релиза и напрямую получать адреса файлов с постоянными ссылками доступа;
Самостоятельный сервер/хранилище объектов: Убедитесь, что сервис поддерживает протокол HTTPS (избегайте ограничений безопасности клиента), стабильный доступ к файлам (рекомендуется использовать CDN-ускорение для загрузок) и поддерживает возобновление загрузки (улучшить опыт загрузки больших файлов);
4. Преимущества и особенности
Полный контроль процесса: Независимо решать ритм выпуска, хранение истории версий и стратегию обновления без ограничений третьих платформ;
Низкая стоимость реализации: Нет необходимости создавать/поддерживать специализированный сервер обновлений, можно реализовать с помощью существующих веб-сервисов или платформ хостинга кода;
Высокая гибкость: Поддержка поэтапного выпуска (реализуется путем настройки разных URL файлов обновления), обновлений по каналам (настройка нескольких URL файлов обновления) и экстренных исправлений (быстро обновлять размещенные пакеты установки или пользовательские файлы);
Кросс-платформенная совместимость: Та же основная логика может быть адаптирована к нескольким устройствам, таким как Windows, macOS, Android и iOS (требуется адаптация к разрешениям установки каждой системы);
Простота повторного использования и расширения: Основную логику обновления можно инкапсулировать в общий модуль, и различные проекты могут быстро получить доступ, просто заменив "URL файла обновления".