將桌面應用程式交付給使用者只是成功的一半——真正的挑戰在於將應用程式打包、簽署並在三個作業系統上發布。Electron Builder(electron-userland/electron-builder)是解決此問題最廣泛採用的工具,為 macOS、Windows 和 Linux 的 Electron 應用程式打包提供全方位解決方案。
由 Electron 生態系統維護者創建,Electron Builder 已成為 Electron 應用程式發布的事實標準。從小型工具到企業 SaaS 產品,成千上萬的生產應用程式都在使用它,處理從安裝程式建立到程式碼簽署再到自動更新的一切事務。
Electron Builder 之所以不可或缺,在於其配置驅動的方法。您無需為每個作業系統編寫特定平台的打包腳本,而是在單一的 electron-builder.yml 檔案中定義構建目標、簽署身分和更新配置。該工具隨後會在所有目標平台上協調整個流程。
Electron Builder 如何簡化跨平台打包?
Electron Builder 抽象化了在每個作業系統上建立適當安裝程式所需的深層平台特定知識。開發者無需分別學習 Windows 安裝程式、macOS 套件和 Linux 打包格式的細節,只需使用統一的配置模式即可。
graph LR
A[Electron 應用程式\n原始碼] --> B[electron-builder.yml\n配置]
B --> C[構建流程]
C --> D[macOS 構建\n.DMG / .PKG]
C --> E[Windows 構建\n.NSIS / .MSI]
C --> F[Linux 構建\n.AppImage / .Snap]
D --> G[程式碼簽署與\n公證]
E --> H[Authenticode\n簽署]
G --> I[發布產出物]
H --> I
F --> I
該流程在單次處理中處理依賴檢測(原生模組、系統函式庫)、資源最佳化(特定作業系統的圖示、檔案關聯)以及特定平台的行為(如 macOS 強化執行時期權利)。
Electron Builder 支援哪些安裝程式格式?
每個平台都有其偏好的安裝程式格式,Electron Builder 支援所有三個平台的主要選項。
| 平台 | 安裝程式格式 | 使用場景 |
|---|---|---|
| macOS | DMG、PKG、MAS(Mac App Store) | DMG 用於直接下載,PKG 用於企業部署,MAS 用於 App Store 發布 |
| Windows | NSIS、MSI、AppX、可攜式 | NSIS 用於自訂安裝程式,MSI 用於企業群組原則,AppX 用於 Windows Store |
| Linux | AppImage、Snap、Flatpak、deb、rpm | AppImage 用於通用 Linux,Snap 用於 Canonical 生態系,Flatpak 用於 Fedora |
| 全部 | ZIP、7z、tar.xz | 供進階使用者和 CI 環境使用的可攜式壓縮檔 |
每種安裝程式類型都可以透過平台特定選項進行自訂,例如授權協議檔案、自訂安裝程式圖示、檔案關聯和執行時期依賴。
Electron Builder 中的程式碼簽署如何運作?
程式碼簽署是桌面應用程式發布中最關鍵——也是最容易出錯——的環節之一。Electron Builder 自動化憑證管理和簽署工作流程。
| 簽署任務 | macOS | Windows |
|---|---|---|
| 憑證來源 | Apple Developer 帳戶、鑰匙圈 | Authenticode 憑證檔案或 Azure Key Vault |
| 公證 | 透過 altool 內建公證 | 不適用 |
| CI 配置 | CSC_LINK + CSC_KEY_PASSWORD 環境變數 | WIN_CSC_LINK + WIN_CSC_KEY_PASSWORD 環境變數 |
| 強化執行時期 | 自動權利生成 | 不適用 |
| 時間戳記 | Apple 時間戳伺服器 | RFC 3161 時間戳伺服器 |
該工具在單一構建命令中處理簽署和公證,確保 macOS 應用程式通過 Gatekeeper 檢查,Windows 應用程式避免 SmartScreen 警告。
Electron Builder 提供哪些自動更新功能?
Electron Builder 與 electron-updater 深度整合,提供無縫的應用程式更新。更新系統支援多種發布後端和進階功能。
| 功能 | 說明 |
|---|---|
| 差異更新 | 僅下載版本之間變更的檔案 |
| 多種提供者 | GitHub Releases、S3、通用 HTTP(S)、GitLab、Bitbucket |
| 頻道管理 | 穩定版、測試版、Alpha 版發布頻道 |
| 強制更新 | 透過版本範圍強制執行必要更新 |
| 發布說明 | 應用程式內顯示更新日誌和升級資訊 |
自動更新系統專為生產環境的可靠性而設計,具有下載重試、透過 SHA 校驗和進行完整性驗證,以及在差異更新失敗時回退到完整更新等特性。
常見問題
什麼是 Electron Builder? Electron Builder (electron-userland/electron-builder) 是一套完整、整合的解決方案,用於打包和構建適用於 macOS、Windows 和 Linux 發布的 Electron 應用程式。它在單一配置驅動的工具鏈中處理程式碼簽署、自動更新生成、安裝程式建立和 CI/CD 整合。
Electron Builder 如何處理程式碼簽署? Electron Builder 支援 macOS(透過 Apple Developer 憑證和公證)和 Windows(透過 Authenticode 憑證)的自動化程式碼簽署。它與 GitHub Actions、CircleCI 和 Travis CI 等 CI 環境整合,無需手動干預即可簽署構建版本。
Electron Builder 支援哪些安裝程式格式? Electron Builder 支援多種安裝程式格式:DMG 和 PKG 用於 macOS;NSIS 和 MSI 用於 Windows;AppImage、Snap 和 Flatpak 用於 Linux;以及跨平台格式如可攜式執行檔和壓縮檔(ZIP、7z、tar.xz)。
Electron Builder 的自動更新如何運作? Electron Builder 與 electron-updater 整合以提供自動應用程式更新。它支援透過 GitHub Releases、S3、通用 HTTP 伺服器和自訂更新伺服器進行更新發布。更新可以是差異更新以減少頻寬使用。
Electron Builder 可以在 CI/CD 流程中使用嗎? 是的,Electron Builder 專為 CI/CD 整合而設計。它具有官方 Docker 映像、支援環境變數注入,可與 GitHub Actions、CircleCI、Travis CI、Jenkins 和 GitLab CI 配合使用,並提供無頭構建模式。
延伸閱讀
- Electron Builder GitHub 儲存庫 – 原始碼、問題和社群討論
- Electron Builder 文件 – 包含配置參考和指南的官方文件
- Electron 打包指南 – Electron 官方打包與發布指南
- 程式碼簽署最佳實踐 – Apple 官方公證文件
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!