封裝你的應用程式
學習目標
在本教學的這一部分,我們將介紹使用 Electron Forge 封裝和發佈你的應用程式的基礎知識。
使用 Electron Forge
Electron 沒有任何內建在其核心模組中的封裝和發佈工具。一旦你在開發模式下有一個可運作的 Electron 應用程式,你需要使用額外的工具來建立一個可以發佈給使用者的封裝應用程式(也稱為可發佈版本)。可發佈版本可以是安裝程式(例如 Windows 上的 MSI)或可攜式執行檔(例如 macOS 上的 .app
)。
Electron Forge 是一個多合一工具,用於處理 Electron 應用程式的封裝和發佈。在底層,它結合了許多現有的 Electron 工具(例如 @electron/packager
、@electron/osx-sign
、electron-winstaller
等)到一個單一介面中,因此你無需擔心將它們全部連接在一起。
將你的專案匯入 Forge
你可以在專案的 devDependencies
中安裝 Electron Forge 的 CLI,並使用方便的轉換腳本匯入你現有的專案。
- npm
- Yarn
npm install --save-dev @electron-forge/cli
npx electron-forge import
npm install --save-dev @electron-forge/cli
yarn dlx electron-forge import
一旦轉換腳本完成,Forge 應該已經在你的 package.json
檔案中新增了一些腳本。
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
有關 make
和其他 Forge API 的更多資訊,請查看 Electron Forge CLI 文件。
你還應該注意到你的 package.json 現在在 devDependencies
下安裝了更多套件,以及一個新的 forge.config.js
檔案,該檔案匯出一個配置物件。你應該在預先填入的配置中看到多個 makers(產生可發佈應用程式套件的套件),每個目標平台各一個。
建立可發佈版本
要建立可發佈版本,請使用你專案新的 make
腳本,該腳本執行 electron-forge make
命令。
- npm
- Yarn
npm run make
yarn make
此 make
命令包含兩個步驟
- 它將首先在底層執行
electron-forge package
,這會將你的應用程式程式碼與 Electron 二進制檔案捆綁在一起。封裝的程式碼會產生到一個資料夾中。 - 然後,它將使用這個封裝的應用程式資料夾,為每個配置的 maker 建立一個獨立的可發佈版本。
腳本執行後,你應該會看到一個 out
資料夾,其中包含可發佈版本和一個包含封裝應用程式程式碼的資料夾。
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
out/make
資料夾中的可發佈版本應該可以啟動了!你現在已經建立了你的第一個捆綁的 Electron 應用程式。
Electron Forge 可以配置為以不同的作業系統特定格式(例如 DMG、deb、MSI 等)建立可發佈版本。請參閱 Forge 的 Makers 文件,了解所有配置選項。
設定自訂應用程式圖示需要在你的配置中新增一些內容。請查看 Forge 的圖示教學 以取得更多資訊。
如果你想手動封裝你的程式碼,或者你只是對了解封裝 Electron 應用程式背後的機制感興趣,請查看完整的應用程式封裝文件。
重要:簽署你的程式碼
為了將桌面應用程式發佈給終端使用者,我們強烈建議你程式碼簽署你的 Electron 應用程式。程式碼簽署是交付桌面應用程式的重要部分,並且是本教學最後一部分中自動更新步驟的必要條件。
程式碼簽署是一種安全技術,你使用它來證明桌面應用程式是由已知來源建立的。Windows 和 macOS 都有其作業系統特定的程式碼簽署系統,這將使使用者難以下載或啟動未簽署的應用程式。
在 macOS 上,程式碼簽署在應用程式封裝層級完成。在 Windows 上,改為簽署可發佈的安裝程式。如果你已經有 Windows 和 macOS 的程式碼簽署憑證,你可以在你的 Forge 配置中設定你的憑證。
有關程式碼簽署的更多資訊,請查看 Forge 文件中的 簽署 macOS 應用程式 指南。
- macOS
- Windows
module.exports = {
packagerConfig: {
osxSign: {},
// ...
osxNotarize: {
tool: 'notarytool',
appleId: process.env.APPLE_ID,
appleIdPassword: process.env.APPLE_PASSWORD,
teamId: process.env.APPLE_TEAM_ID
}
// ...
}
}
module.exports = {
// ...
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {
certificateFile: './cert.pfx',
certificatePassword: process.env.CERTIFICATE_PASSWORD
}
}
]
// ...
}
摘要
Electron 應用程式需要封裝才能發佈給使用者。在本教學中,你將你的應用程式匯入 Electron Forge,並配置它來封裝你的應用程式並產生安裝程式。
為了讓使用者的系統信任你的應用程式,你需要對可發佈版本進行程式碼簽署,以數位方式證明其為真實且未經竄改。一旦你將 Forge 配置為使用你的程式碼簽署憑證資訊,你的應用程式就可以透過 Forge 進行簽署。