Skip to content

Что такое обновление URL-приложения?

Обновление URL-приложения — это легковесный механизм обновления, при котором разработчики самостоятельно управляют файлами обновления. Его основным преимуществом является то, что нет необходимости поддерживать адреса файлов в нескольких местах, и разработчики могут напрямую контролировать весь процесс выпуска версии. Он особенно подходит для проектов с открытым исходным кодом, коммерческих проектов с индивидуальным ритмом выпуска или сценариев, требующих унифицированной кросс-платформенной стратегии обновления, поддерживая обновление и распространение пакетов установки приложений и различных пользовательских файлов.

1. Основные концепции

1.1 Самостоятельное хранение файлов

Основная логика заключается в том, чтобы самостоятельно размещать "пакет установки приложения" (APK/EXE/DMG/IPA и т.д.) или "пользовательские файлы обновления" на общедоступных веб-сервисах, позволяя клиентам активно запрашивать проверку и скачивание.

Распространенные сервисы для хранения: функциональность Releases на GitHub/Gitee/GitLab, самостоятельные HTTPS-серверы, сервисы хранения объектов (например, AWS S3, Alibaba Cloud OSS и т.д.).

2. Типовой рабочий процесс

  1. Запуск клиента/периодический триггер: Активно отправить запрос на обновление для получения информации о версии удаленного файла (например, номер версии файла, метаданные файла и т.д.);

  2. Сравнение версий: Сравнить текущий номер версии локального приложения с номером версии, соответствующим удаленному файлу обновления;

  3. Ветвление решения: Если номер удаленной версии > номер локальной версии, запустить процесс обновления;

  4. Отображение пользователям подсказок об обновлении (журналы обновлений и другая информация);

  5. Ожидание подтверждения пользователя (при необходимости можно настроить принудительные обновления);

  6. После подтверждения пользователя напрямую скачать соответствующий пакет установки приложения или пользовательский файл через настроенный "URL файла обновления";

  7. После завершения загрузки запустить последующие процессы в зависимости от типа файла (пакеты установки приложений автоматически запускают установку, пользовательские файлы выполняют предварительно настроенную бизнес-логику), и процесс завершается.

Если номер удаленной версии ≤ номер локальной версии: Отобразить пользователю подсказку "в настоящее время уже самая последняя версия" (или тихо завершить процесс), и процесс завершается.

3. Основные моменты реализации

Спецификации конфигурации размещения версий

  • GitHub/Gitee/GitLab: Предпочтительно использовать официальную функцию Releases, загружать пакеты установки приложений или пользовательские файлы обновления в качестве вложений релиза и напрямую получать адреса файлов с постоянными ссылками доступа;

  • Самостоятельный сервер/хранилище объектов: Убедитесь, что сервис поддерживает протокол HTTPS (избегайте ограничений безопасности клиента), стабильный доступ к файлам (рекомендуется использовать CDN-ускорение для загрузок) и поддерживает возобновление загрузки (улучшить опыт загрузки больших файлов);

4. Преимущества и особенности

  • Полный контроль процесса: Независимо решать ритм выпуска, хранение истории версий и стратегию обновления без ограничений третьих платформ;

  • Низкая стоимость реализации: Нет необходимости создавать/поддерживать специализированный сервер обновлений, можно реализовать с помощью существующих веб-сервисов или платформ хостинга кода;

  • Высокая гибкость: Поддержка поэтапного выпуска (реализуется путем настройки разных URL файлов обновления), обновлений по каналам (настройка нескольких URL файлов обновления) и экстренных исправлений (быстро обновлять размещенные пакеты установки или пользовательские файлы);

  • Кросс-платформенная совместимость: Та же основная логика может быть адаптирована к нескольким устройствам, таким как Windows, macOS, Android и iOS (требуется адаптация к разрешениям установки каждой системы);

  • Простота повторного использования и расширения: Основную логику обновления можно инкапсулировать в общий модуль, и различные проекты могут быстро получить доступ, просто заменив "URL файла обновления".

toolsetlink@163.com