Перейти к содержимому
Oleaflyv0.4.7

Как Oleafly собирает, подписывает, проверяет и публикует свою ленту обновлений для всех платформ.

Oleafly использует плагин обновлений Tauri. При запуске приложение проверяет последний релиз GitHub и открывает собственное окно обновления, когда доступна более новая версия. Пользователи могут запустить проверку также из меню приложения или через О программе → Проверить обновления.

Каждая платформенная сборка создаёт подписанные артефакты обновления и фрагмент latest.json. Рабочий процесс выпуска держит эти фрагменты раздельно, пока не завершатся все четыре сборки, затем объединяет записи каждой платформы в один канонический манифест.

Итоговый манифест должен содержать записи для macOS Apple Silicon, Windows x64, Linux x64 и Linux ARM64. Он остаётся прикреплённым к черновику релиза, пока мейнтейнер не запустит защищённый рабочий процесс публикации. Установленные приложения не видят черновик.

Приложение скачивает latest.json из GitHub Releases. Перед установкой Tauri проверяет подпись обновления по открытому ключу, встроенному в src-tauri/tauri.conf.json. Отсутствующие, неподписанные или изменённые артефакты отклоняются.

Примечания к релизу берутся из соответствующего раздела CHANGELOG.md. Рабочий процесс извлекает этот раздел и использует его и для текста релиза GitHub, и для окна обновления.

От тега версии до установленных приложенийОтправка тега версии запускает подписанные сборки для macOS Apple Silicon, Windows x64, Linux x64 и Linux ARM64. Их фрагменты для обновления сливаются в один latest.json, прикреплённый к черновику выпуска для проверки сопровождающими. Запуск публикации ещё раз всё проверяет и публикует выпуск, после чего latest.json становится доступным. Установленные приложения скачивают его, проверяют подпись открытым ключом, встроенным в приложение, и затем устанавливают.Подписанные сборкиТег версииЗапускает сборкуmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonОдин манифестЧерновик выпускаПроверка сопровождающимиЗапуск публикацииПроверяет ещё раз,затем выпускаетОпубликованный выпускlatest.json доступенУстановленные приложенияПроверяют подпись,затем устанавливаютСопровождающий запускает публикациюОт тега версии до установленных приложенийОтправка тега версии запускает подписанные сборки для macOS Apple Silicon, Windows x64, Linux x64 и Linux ARM64. Их фрагменты для обновления сливаются в один latest.json, прикреплённый к черновику выпуска для проверки сопровождающими. Запуск публикации ещё раз всё проверяет и публикует выпуск, после чего latest.json становится доступным. Установленные приложения скачивают его, проверяют подпись открытым ключом, встроенным в приложение, и затем устанавливают.Подписанные сборкиТег версииЗапускает сборкуmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonОдин манифестЧерновик выпускаПроверка сопровождающимиЗапуск публикацииПроверяет ещё раз, затем выпускаетОпубликованный выпускlatest.json доступенУстановленные приложенияПроверяют подпись,затем устанавливают
Тег собирает и подписывает все четыре платформы в черновик. Публикация делает latest.json доступным, а установленные приложения проверяют подпись перед установкой.

Открытый ключ обновления закоммичен в src-tauri/tauri.conf.json. Закрытый ключ должен находиться только в секретах GitHub Actions:

  • TAURI_SIGNING_PRIVATE_KEY
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD

Никогда не коммитьте закрытый ключ. Если он раскрыт, сгенерируйте новую пару, обновите секрет репозитория и замените встроенный открытый ключ. Существующие установки доверяют своему встроенному ключу, поэтому смена ключа требует спланированного пути ручного обновления.

Подписывание для операционной системы отделено от подписывания обновлений. Сборки macOS используют подписывание кода Apple и нотаризацию, когда доступны секреты релиза. Сборки Windows используют Azure Artifact Signing, когда доступны его учётные данные.

Неудачная проверка или загрузка оставляет установленное приложение без изменений. Ошибка подписи блокирует установку. Приложение перезапускается только после успешной установки проверенной загрузки.

Oleafly не выполняет автоматический откат завершённого обновления. Чтобы вернуться к более ранней версии, закройте приложение, создайте резервные копии важных проектов, скачайте более ранний официальный установщик, проверьте его и установите поверх текущей версии.

Процесс черновика и публикации описан в Выпуск Oleafly.

Просмотр изображения

Не удалось загрузить ответы ИИ

Попробуйте снова или воспользуйтесь поиском по документации.