Bỏ qua để đến nội dung
Oleaflyv0.4.7

Cách Oleafly dựng, ký, xác minh và công bố nguồn cập nhật đa nền tảng của mình.

Oleafly dùng plugin cập nhật của Tauri. Khi khởi động, ứng dụng kiểm tra bản phát hành GitHub mới nhất và mở cửa sổ cập nhật riêng khi có phiên bản mới hơn. Người dùng cũng có thể kiểm tra từ menu ứng dụng hoặc mục About → Check for updates.

Mỗi bản build nền tảng tạo ra các artifact updater đã ký và một mảnh latest.json. Workflow phát hành giữ riêng các mảnh đó cho tới khi cả bốn bản dựng xong, rồi gộp các mục do từng target sở hữu vào một manifest chuẩn.

Manifest cuối cùng phải chứa các mục cho macOS Apple Silicon, Windows x64, Linux x64 và Linux ARM64. Nó gắn với một bản phát hành nháp cho tới khi người bảo trì chạy workflow phát hành có kiểm soát. Các ứng dụng đã cài không nhìn thấy bản nháp.

Ứng dụng tải latest.json từ GitHub Releases. Trước khi cài, Tauri xác minh chữ ký updater với khóa công khai nhúng trong src-tauri/tauri.conf.json. Artifact thiếu, không ký hoặc bị thay đổi sẽ bị từ chối.

Ghi chú phát hành lấy từ mục tương ứng trong CHANGELOG.md. Workflow trích mục đó và dùng cho cả phần nội dung bản phát hành GitHub lẫn cửa sổ cập nhật.

Từ thẻ phiên bản đến ứng dụng đã càiĐẩy một thẻ phiên bản sẽ bắt đầu các bản dựng có chữ ký cho macOS Apple Silicon, Windows x64, Linux x64 và Linux ARM64. Các mảnh cập nhật của chúng được gộp thành một latest.json, đính kèm vào bản phát hành nháp để người bảo trì duyệt. Lần chạy xuất bản kiểm tra lại mọi thứ và xuất bản bản phát hành, khiến latest.json có hiệu lực. Ứng dụng đã cài tải nó về, kiểm tra chữ ký bằng khóa công khai nhúng trong ứng dụng, rồi mới cài.Bản dựng có chữ kýThẻ phiên bảnBắt đầu bản dựngmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonMột manifestBản phát hành nhápNgười bảo trì duyệtLần chạy xuất bảnKiểm tra lại,rồi phát hànhBản phát hành đã xuất bảnlatest.json có hiệu lựcỨng dụng đã càiKiểm tra chữ ký,rồi cài đặtNgười bảo trì chạy Xuất bảnTừ thẻ phiên bản đến ứng dụng đã càiĐẩy một thẻ phiên bản sẽ bắt đầu các bản dựng có chữ ký cho macOS Apple Silicon, Windows x64, Linux x64 và Linux ARM64. Các mảnh cập nhật của chúng được gộp thành một latest.json, đính kèm vào bản phát hành nháp để người bảo trì duyệt. Lần chạy xuất bản kiểm tra lại mọi thứ và xuất bản bản phát hành, khiến latest.json có hiệu lực. Ứng dụng đã cài tải nó về, kiểm tra chữ ký bằng khóa công khai nhúng trong ứng dụng, rồi mới cài.Bản dựng có chữ kýThẻ phiên bảnBắt đầu bản dựngmacOS Apple SiliconWindows x64Linux x64Linux ARM64latest.jsonMột manifestBản phát hành nhápNgười bảo trì duyệtLần chạy xuất bảnKiểm tra lại, rồi phát hànhBản phát hành đã xuất bảnlatest.json có hiệu lựcỨng dụng đã càiKiểm tra chữ ký,rồi cài đặt
Một thẻ dựng và ký cả bốn nền tảng vào một bản nháp. Xuất bản khiến latest.json có hiệu lực, và ứng dụng đã cài kiểm tra chữ ký trước khi cài.

Khóa công khai của updater được commit trong src-tauri/tauri.conf.json. Khóa riêng tư chỉ nằm trong secrets của GitHub Actions:

  • TAURI_SIGNING_PRIVATE_KEY
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD

Không bao giờ commit khóa riêng tư. Nếu khóa bị lộ, hãy tạo một cặp khóa mới, cập nhật secret của kho mã và thay khóa công khai đã nhúng. Các bản cài hiện có tin vào khóa nhúng của chúng, nên việc xoay khóa cần một lộ trình cập nhật thủ công được lên kế hoạch.

Việc ký ở cấp hệ điều hành tách biệt với việc ký updater. Bản build macOS dùng ký mã và notarization của Apple khi các secret phát hành hiện diện. Bản build Windows dùng Azure Artifact Signing khi thông tin định danh của nó hiện diện.

Một lần kiểm tra hay tải về thất bại để ứng dụng đã cài nguyên vẹn. Lỗi chữ ký chặn việc cài. Ứng dụng chỉ khởi động lại sau khi bản tải đã xác minh được cài thành công.

Oleafly không tự động quay lui một bản cập nhật đã hoàn tất. Để trở về phiên bản trước, hãy đóng ứng dụng, sao lưu các dự án quan trọng, tải bộ cài chính thức cũ hơn, xác minh nó, rồi cài đè lên phiên bản hiện tại.

Xem Phát hành Oleafly để hiểu quy trình bản nháp và phát hành.

Xem trước hình ảnh

Không tải được câu trả lời AI

Hãy thử lại, hoặc tìm trong tài liệu.