Упаковывание вашего приложения
Цели обучения
В этой части учебника мы рассмотрим основы упаковки и распространения вашего приложения с помощью Electron Forge.
Использование Electron Forge
Electron не имеет инструментов для упаковки и распространения, встроенных в свои основные модули. После создания работоспособного приложения Electron в режиме разработки вам необходимо использовать дополнительные инструменты для создания упакованного приложения, которое можно распространять пользователям (также известное как распространяемое приложение). Распространяемые приложения могут быть установщиками (например, MSI в Windows) или портативными исполняемыми файлами (например, .app на macOS).
Electron Forge — это комплексный инструмент, который обрабатывает упаковку и распространение приложений Electron. Внутри он объединяет множество существующих инструментов Electron (например, electron-packager, @electron/osx-sign, electron-winstaller и др.) в единый интерфейс, чтобы вам не приходилось беспокоиться о их настройке.
Импорт вашего проекта в Forge
Вы можете установить командную строку Electron Forge в devDependencies своего проекта и импортировать свой существующий проект с помощью удобного скрипта преобразования.
- npm
- Yarn
npm install --save-dev @electron-forge/cli npx electron-forge import
yarn add --dev @electron-forge/cli npx electron-forge import
После выполнения скрипта преобразования Forge должен добавить несколько скриптов в ваш package.json файл.
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
Дополнительную информацию о make и других API Forge см. в документации Electron Forge CLI.
Вы также должны заметить, что ваш файл package.json теперь содержит несколько дополнительных пакетов в devDependencies, и включает добавленное поле config.forge с массивом настроенных создателей. Создатели — это плагины Forge, которые создают распространяемые приложения из исходного кода. Вы должны увидеть несколько создателей в предварительно заполненной конфигурации, по одному для каждой платформы.
Создание распространяемого приложения
Чтобы создать распространяемое приложение, используйте новый make скрипт вашего проекта, который выполняет команду electron-forge make.
- npm
- Yarn
npm run make
yarn run make
Эта make команда содержит два шага:
- Сначала она выполнит
electron-forge packageв фоновом режиме, которое соберет код вашего приложения вместе с бинарником Electron. Упакованный код будет сгенерирован в папку. - Затем она воспользуется этой упакованной папкой приложения для создания отдельного дистрибутива для каждого настроенного создателя.
После выполнения скрипта вы должны увидеть папку 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 по создателям здесь для всех параметров конфигурации.
Если вы хотите упаковать свой код вручную или просто хотите понять механику упаковки приложения Electron, ознакомьтесь с полным руководством Упаковка приложений.
Важно: подписание вашего кода
Для распространения настольных приложений конечным пользователям мы настоятельно рекомендуем подписать код вашего приложения Electron. Подписание кода — важная часть распространения настольных приложений и является обязательным шагом для автоматического обновления на последнем этапе руководства.
Подписание кода — это технология безопасности, используемая для подтверждения того, что настольное приложение было создано известным источником. Windows и macOS имеют свои собственные системы подписи кода, которые затруднят пользователям загрузку или запуск неподписанных приложений.
Если у вас уже есть сертификаты подписи кода для Windows и macOS, вы можете настроить свои учетные данные в вашей конфигурации Forge. В противном случае, пожалуйста, обратитесь к полному руководству по Подписанию кода, чтобы узнать, как приобрести сертификат, и получить больше информации о процессе подписи кода настольных приложений.
В macOS подписание кода выполняется на уровне упаковки приложения. В Windows подписываются установочные пакеты дистрибутива.
- macOS
- Windows
{
//...
"config": {
"forge": {
//...
"packagerConfig": {
"osxSign": {
"identity": "Developer ID Application: Felix Rieseberg (LT94ZKYDCJ)",
"hardened-runtime": true,
"entitlements": "entitlements.plist",
"entitlements-inherit": "entitlements.plist",
"signature-flags": "library"
},
"osxNotarize": {
"appleId": "felix@felix.fun",
"appleIdPassword": "this-is-a-secret"
}
}
//...
}
}
//...
}
{
//...
"config": {
"forge": {
//...
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"certificateFile": "./cert.pfx",
"certificatePassword": "this-is-a-secret"
}
}
]
//...
}
}
//...
}
Резюме
Приложения Electron необходимо упаковать для распространения пользователям. В этом руководстве вы импортировали своё приложение в Electron Forge и настроились для упаковки приложения и генерации установочных файлов.
Для того, чтобы ваше приложение доверялось системой пользователя, необходимо цифровым способом подтвердить, что дистрибутив является подлинным и не был изменён с помощью подписи кода. Ваше приложение может быть подписано через Forge после настройки для использования вашей информации о сертификате подписи кода.
© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/tutorial/tutorial-packaging