electron/docs/tutorial/application-distribution.md

75 lines
2.5 KiB
Markdown

# Application distribution
To distribute your app with atom-shell, you should name the folder of your app
as `app`, and put it under atom-shell's resources directory (on OS X it is
`Atom.app/Contents/Resources/`, and on Linux and Windows it is `resources/`),
like this:
On Mac OS X:
```text
atom-shell/Atom.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
```
On Windows and Linux:
```text
atom-shell/resources/app
├── package.json
├── main.js
└── index.html
```
Then execute `Atom.app` (or `atom` on Linux, and `atom.exe` on Windows), and
atom-shell will start as your app. The `atom-shell` directory would then be
your distribution that should be delivered to final users.
## Renaming Atom Shell for your app
The best way to rename Atom Shell is to change the `atom.gyp` file, then build
from source. Open up `atom.gyp` and change the first lines:
```
'project_name': 'atom',
'product_name': 'Atom',
'framework_name': 'Atom Framework',
```
Once you make the change, re-run `script/bootstrap` then run the command:
```sh
script/build.py -c Release -t $whatever_you_chose_for_project_name
```
If your app is OS X / Linux-only, you can also simply rename the "Atom.app"
folder as well as the names under "Framework" (i.e. "Atom Framework.framework"
=> "MyApp Framework.framework"), but this will break loading native Node
modules on Windows.
Fixing this is complicated, but a Grunt task has been created that will handle
this automatically,
[grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
This task will automatically handle editing the .gyp file, building from
source, then rebuilding your app's native Node modules to match the new
executable name.
## Packaging your app into a file
Apart from shipping your app by copying all its sources files, you can also
package your app into an [asar](https://github.com/atom/asar) archive to avoid
exposing your app's source code to users.
To use an `asar` archive to replace the `app` folder, you need to rename the
archive to `app.asar`, and put it under atom-shell's resources directory,
atom-shell will then try read the archive and start from it.
More details can be found in [Application packaging](application-packaging.md).
## Building with grunt
If you build your application with `grunt` there is a grunt task that can
download atom-shell for your current platform automatically:
[grunt-download-atom-shell](https://github.com/atom/grunt-download-atom-shell).