Electron 打包您的應用程序

2023-02-16 17:14 更新

學習目標?

在本教程的這一部分中,我們將介紹使用 Electron Forge 打包和分發(fā)應用的基礎知識。

使用 Electron Forge

Electron 的核心模塊中沒有捆綁任何用于打包或分發(fā)文件的工具。 如果您在開發(fā)模式下完成了一個 Electron 應用,需要使用額外的工具來打包應用程序 (也稱為可分發(fā)文件) 并分發(fā)給用戶 。 可分發(fā)文件可以是安裝程序 (例如 Windows 上的 MSI) 或者綠色軟件 (例如 macOS 上的 .app 文件)。

Electron Forge 是一個處理 Electron 應用程序打包與分發(fā)的一體化工具。 在工具底層,它將許多現(xiàn)有的 Electron 工具 (例如 electron-packager、 @electron/osx-sign、 electron-winstaller  等) 組合到一起,因此您不必費心處理不同系統(tǒng)的打包工作。

導入你的項目到 Forge

將 Electron Forge 的 CLI 工具包安裝到項目的 devDependencies 依賴中,然后使用現(xiàn)成的轉(zhuǎn)化腳本將項目導入至 Electron Forge。

 npm Yarn 
npm install --save-dev @electron-forge/cli
npx electron-forge import
yarn add --dev @electron-forge/cli
npx electron-forge import

轉(zhuǎn)換腳本完成后,F(xiàn)orge 會將一些腳本添加到您的 package.json 文件中。

  //...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make"
  },
  //...

CLI 文檔

有關 make 或其他 Forge API 的更多信息,請查看 Electron Forge CLI 文檔。

您還應該注意到您的 package.json 現(xiàn)在安裝了更多的包 在 devDependencies 下,以及一個導出配置的新 forge.config.js 文件 目的。 您應該在預填充的配置中看到多個makers(生成可分發(fā)應用程序包的包),每個目標平臺一個。

創(chuàng)建一個可分發(fā)版本

要創(chuàng)建可分發(fā)文件,請使用項目中的 make 腳本,該腳本最終運行了 electron-forge make 命令。

 npm  Yarn
npm run make
yarn run make

該 make 命令包含兩步:

  1. 它將首先運行 electron-forge package ,把您的應用程序 代碼與 Electron 二進制包結合起來。 完成打包的代碼將會被生成到一個特定的文件夾中。
  2. 然后它將使用這個文件夾為每個 maker 配置生成一個可分發(fā)文件。

在腳本運行后,您應該看到一個 out 文件夾,其中包括可分發(fā)文件與一個包含其源碼的文件夾。

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 文件夾中的應用程序應該可以啟動了! 現(xiàn)在,您已經(jīng)創(chuàng)建了你的第一個 Electron 程序。

可分發(fā)文件格式

Electron Forge 通過配置可以為不同的操作系統(tǒng)創(chuàng)建特定格式的可分發(fā)文件 (例如 DMG、deb、MSI 等)。 相關配置選項詳情,請參閱 Forge 的 Makers 文檔。

創(chuàng)建和添加應用程序圖標

設置自定義的應用程序圖標,需要添加一些額外的配置。 查看 Forge 的圖標教程 了解更多信息。

不使用 ELECTRON FORGE 打包

如果您想手動打包代碼,或者是想了解 Electron 的打包機制,可以查看完整的 應用程序打包 文檔。

重要提示:對代碼進行簽名

將桌面應用程序分發(fā)給終端用戶前,我們 強烈推薦 您對 Electron 應用進行 代碼簽名。 代碼簽名是交付桌面應用程序的重要組成部分,并且它對于應用程序的自動更新功能 (將會在教程最后部分講解) 來說是必需的。

代碼簽名是一種可用于證明桌面應用程序是由已知來源創(chuàng)建的安全技術。 Windows 和 macOS 擁有其特定的代碼簽名系統(tǒng),這將使用戶難以下載或啟動未簽名的應用程序。

在 macOS 上,代碼簽名是在應用程序打包時完成的。 而在 Windows 中,則是對可分發(fā)文件進行簽名操作。 如果您已經(jīng)擁有適用于 Windows 和 macOS 的代碼簽名證書,可以在 Forge 配置中設置您的憑據(jù)。

INFO

欲了解更多代碼簽名的信息,請參閱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 應用程序需要打包后分發(fā)給用戶。 在本教程中,您將應用程序?qū)?Electron Forge 并對其進行配置以打包您的應用程序并生成安裝程序。

為了讓應用程序受到用戶系統(tǒng)的信任,您需要以數(shù)字簽名證明可分發(fā)文件的內(nèi)容是真實的并且未被代碼簽名篡改。 只要在應用配置中添加簽名證書信息,您就可以通過 Forge 對其進行簽名。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號