Zum Inhalt springen
Oleaflyv0.4.7

Wie Oleafly seinen plattformübergreifenden Updater-Feed baut, signiert, prüft und veröffentlicht.

Oleafly nutzt das Updater-Plugin von Tauri. Beim Start prüft die App das neueste GitHub-Release und öffnet ihr eigenes Update-Fenster, wenn eine neuere Version verfügbar ist. Benutzer können auch über das Anwendungsmenü oder Über Oleafly → Nach Updates suchen prüfen.

Jeder Plattform-Build erzeugt signierte Updater-Artefakte und ein latest.json-Fragment. Der Release-Workflow hält diese Fragmente getrennt, bis alle vier Builds fertig sind, und führt dann die Einträge jedes Ziels zu einem kanonischen Manifest zusammen.

Das finale Manifest muss Einträge für macOS Apple Silicon, Windows x64, Linux x64 und Linux ARM64 enthalten. Es bleibt an ein Draft-Release angehängt, bis eine betreuende Person den abgesicherten Veröffentlichungs-Workflow ausführt. Installierte Apps sehen den Draft nicht.

Die App lädt die latest.json von GitHub Releases herunter. Vor der Installation prüft Tauri die Updater-Signatur gegen den öffentlichen Schlüssel, der in src-tauri/tauri.conf.json eingebettet ist. Fehlende, unsignierte oder veränderte Artefakte werden abgelehnt.

Die Releasenotizen stammen aus dem passenden Abschnitt in CHANGELOG.md. Der Workflow extrahiert diesen Abschnitt und verwendet ihn sowohl für den Text des GitHub-Releases als auch für das Updater-Fenster.

Vom Versions-Tag zu installierten AppsDas Pushen eines Versions-Tags startet signierte Builds für macOS Apple Silicon, Windows x64, Linux x64 und Linux ARM64. Ihre Updater-Fragmente werden zu einer latest.json zusammengeführt, die an einen Release-Entwurf zur Prüfung durch die Maintainer angehängt wird. Der Veröffentlichungslauf prüft alles erneut und veröffentlicht das Release, wodurch latest.json live geht. Installierte Apps laden sie herunter, prüfen die Signatur gegen den in die App eingebetteten öffentlichen Schlüssel und installieren dann.Signierte BuildsVersions-TagStartet den BuildmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonEin ManifestRelease-EntwurfPrüfung durch MaintainerVeröffentlichungslaufPrüft erneut,dann ReleaseVeröffentlichtes Releaselatest.json ist liveInstallierte AppsPrüfen die Signatur,dann InstallationMaintainer startet VeröffentlichenVom Versions-Tag zu installierten AppsDas Pushen eines Versions-Tags startet signierte Builds für macOS Apple Silicon, Windows x64, Linux x64 und Linux ARM64. Ihre Updater-Fragmente werden zu einer latest.json zusammengeführt, die an einen Release-Entwurf zur Prüfung durch die Maintainer angehängt wird. Der Veröffentlichungslauf prüft alles erneut und veröffentlicht das Release, wodurch latest.json live geht. Installierte Apps laden sie herunter, prüfen die Signatur gegen den in die App eingebetteten öffentlichen Schlüssel und installieren dann.Signierte BuildsVersions-TagStartet den BuildmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonEin ManifestRelease-EntwurfPrüfung durch MaintainerVeröffentlichungslaufPrüft erneut, dann ReleaseVeröffentlichtes Releaselatest.json ist liveInstallierte AppsPrüfen die Signatur,dann Installation
Ein Tag baut und signiert alle vier Plattformen in einen Entwurf. Veröffentlichen schaltet latest.json live, und installierte Apps prüfen die Signatur vor der Installation.

Der öffentliche Updater-Schlüssel liegt committet in src-tauri/tauri.conf.json. Der private Schlüssel gehört ausschließlich in die Secrets von GitHub Actions:

  • TAURI_SIGNING_PRIVATE_KEY
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD

Committen Sie den privaten Schlüssel niemals. Ist er offengelegt, erzeugen Sie ein neues Paar, aktualisieren Sie das Repository-Secret und ersetzen Sie den eingebetteten öffentlichen Schlüssel. Bestehende Installationen vertrauen ihrem eingebetteten Schlüssel, eine Rotation braucht deshalb einen geplanten manuellen Aktualisierungspfad.

Das Signieren für das Betriebssystem ist von der Updater-Signierung getrennt. macOS-Builds nutzen Apples Codesignieren und Notarisierung, wenn die Release-Secrets vorhanden sind. Windows-Builds nutzen Azure Artifact Signing, wenn dessen Zugangsdaten vorhanden sind.

Eine fehlgeschlagene Prüfung oder ein fehlgeschlagener Download lässt die installierte Anwendung unverändert. Ein Signaturfehler blockiert die Installation. Die Anwendung startet erst neu, nachdem der verifizierte Download erfolgreich installiert wurde.

Oleafly macht ein abgeschlossenes Update nicht automatisch rückgängig. Um zu einer früheren Version zurückzukehren, schließen Sie die App, sichern Sie wichtige Projekte, laden Sie den früheren offiziellen Installer herunter, prüfen Sie ihn und installieren Sie ihn über die aktuelle Version.

Siehe Oleafly veröffentlichen für den Draft- und Veröffentlichungsprozess.

Bildvorschau

KI-Antworten konnten nicht geladen werden

Versuchen Sie es erneut oder durchsuchen Sie die Dokumentation.