75 lines
2.5 KiB
Markdown
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).
|