跳到內容
Oleaflyv0.4.7

Oleafly 如何建置、簽署、驗證並發布跨平台的更新摘要來源(feed)。

Oleafly 使用 Tauri 的更新外掛。啟動時,應用程式會檢查最新的 GitHub 發行版本,有新版本時會開啟自己的更新視窗。使用者也可以從應用程式選單或 關於 → 檢查更新 手動檢查。

每個平台的建置都會產生簽署過的更新產出檔和一份 latest.json 片段。發行工作流程會讓這些片段保持分開,直到四個建置全部完成,再把各目標所擁有的項目合併成一份標準的資訊清單。

最終的資訊清單必須包含 macOS Apple Silicon、Windows x64、Linux x64 和 Linux ARM64 的項目。在維護者執行有防護的發布工作流程之前,它會一直附在草稿發行版本上。已安裝的應用程式看不到草稿。

應用程式從 GitHub Releases 下載 latest.json。安裝之前,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。

圖片預覽

無法載入 AI 回答

請再試一次,或搜尋文件。