electron/docs/tutorial/application-distribution.md

134 lines
4 KiB
Markdown
Raw Normal View History

2015-09-01 02:10:29 +00:00
# Application Distribution
## Overview
To distribute your app with Electron, you need to package and rebrand it.
To do this, you can either use specialized tooling or manual approaches.
## With tooling
You can use the following tools to distribute your application:
* [electron-forge](https://github.com/electron-userland/electron-forge)
* [electron-builder](https://github.com/electron-userland/electron-builder)
* [electron-packager](https://github.com/electron/electron-packager)
These tools will take care of all the steps you need to take to end up with a
distributable Electron application, such as bundling your application,
rebranding the executable, and setting the right icons.
You can check the example of how to package your app with `electron-forge` in
the [Quick Start guide](quick-start.md#package-and-distribute-your-application).
## Manual distribution
### With prebuilt binaries
To distribute your app manually, you need to download Electron's [prebuilt
binaries](https://github.com/electron/electron/releases). Next, the folder
containing your app should be named `app` and placed in Electron's resources
directory as shown in the following examples.
> *NOTE:* the location of Electron's prebuilt binaries is indicated
with `electron/` in the examples below.
*On macOS:*
2019-07-30 20:11:56 +00:00
```plaintext
2015-04-16 03:31:12 +00:00
electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
```
*On Windows and Linux:*
2019-07-30 20:11:56 +00:00
```plaintext
2015-04-16 03:31:12 +00:00
electron/resources/app
├── package.json
├── main.js
└── index.html
```
Then execute `Electron.app` on macOS, `electron` on Linux, or `electron.exe`
on Windows, and Electron will start as your app. The `electron` directory
will then be your distribution to deliver to users.
### With an app source code archive
2014-12-29 18:46:15 +00:00
2021-11-17 18:20:24 +00:00
Instead of shipping your app by copying all of its source files, you can
package your app into an [asar] archive to improve the performance of reading
files on platforms like Windows, if you are not already using a bundler such
as Parcel or Webpack.
2014-12-29 18:46:15 +00:00
To use an `asar` archive to replace the `app` folder, you need to rename the
2015-04-16 03:31:12 +00:00
archive to `app.asar`, and put it under Electron's resources directory like
below, and Electron will then try to read the archive and start from it.
2014-12-29 18:46:15 +00:00
*On macOS:*
2014-12-29 18:46:15 +00:00
2019-07-30 20:11:56 +00:00
```plaintext
2015-04-16 03:31:12 +00:00
electron/Electron.app/Contents/Resources/
2014-12-29 18:46:15 +00:00
└── app.asar
```
*On Windows and Linux:*
2014-12-29 18:46:15 +00:00
2019-07-30 20:11:56 +00:00
```plaintext
2015-04-16 03:31:12 +00:00
electron/resources/
2014-12-29 18:46:15 +00:00
└── app.asar
```
You can find more details on how to use `asar` in the
[`electron/asar` repository][asar].
2014-12-29 18:46:15 +00:00
### Rebranding with downloaded binaries
2014-12-29 18:46:15 +00:00
2015-04-16 03:31:12 +00:00
After bundling your app into Electron, you will want to rebrand Electron
before distributing it to users.
2014-09-29 13:34:54 +00:00
#### macOS
2014-12-29 18:46:15 +00:00
2015-04-17 03:59:40 +00:00
You can rename `Electron.app` to any name you want, and you also have to rename
2016-09-01 14:49:36 +00:00
the `CFBundleDisplayName`, `CFBundleIdentifier` and `CFBundleName` fields in the
2015-04-17 03:59:40 +00:00
following files:
2014-12-29 18:46:15 +00:00
2015-04-16 03:31:12 +00:00
* `Electron.app/Contents/Info.plist`
2015-04-17 03:59:40 +00:00
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
You can also rename the helper app to avoid showing `Electron Helper` in the
Activity Monitor, but make sure you have renamed the helper app's executable
file's name.
The structure of a renamed app would be like:
2019-07-30 20:11:56 +00:00
```plaintext
2015-04-17 03:59:40 +00:00
MyApp.app/Contents
├── Info.plist
├── MacOS/
│   └── MyApp
└── Frameworks/
└── MyApp Helper.app
├── Info.plist
└── MacOS/
   └── MyApp Helper
```
2014-12-29 18:46:15 +00:00
#### Windows
You can rename `electron.exe` to any name you like, and edit its icon and other
information with tools like [rcedit](https://github.com/electron/rcedit).
#### Linux
2014-12-29 18:46:15 +00:00
2015-04-17 03:59:40 +00:00
You can rename the `electron` executable to any name you like.
### Rebranding by rebuilding Electron from source
2015-04-17 03:59:40 +00:00
It is also possible to rebrand Electron by changing the product name and
building it from source. To do this you need to set the build argument
corresponding to the product name (`electron_product_name = "YourProductName"`)
in the `args.gn` file and rebuild.
[asar]: https://github.com/electron/asar