打包你的应用程序
学习目标
在本教程的这一部分中,我们将介绍使用 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 进行签名。