# 應用部署
為了使用 Electron 部署你的應用程序,你存放應用程序的文件夾需要叫做 `app` 并且需要放在 Electron 的
資源文件夾下(在 OS X 中是指 `Electron.app/Contents/Resources/`,在 Linux 和 Windows 中是指 `resources/`)
就像這樣:
在 OS X 中:
```text
electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
```
在 Windows 和 Linux 中:
```text
electron/resources/app
├── package.json
├── main.js
└── index.html
```
然后運行 `Electron.app` (或者 Linux 中的 `electron`,Windows 中的 `electron.exe`),
接著 Electron 就會以你的應用程序的方式啟動。`electron` 文件夾將被部署并可以分發給最終的使用者。
## 將你的應用程序打包成一個文件
除了通過拷貝所有的資源文件來分發你的應用程序之外,你可以可以通過打包你的應用程序為一個 [asar](https://github.com/atom/asar) 庫文件以避免暴露你的源代碼。
為了使用一個 `asar` 庫文件代替 `app` 文件夾,你需要修改這個庫文件的名字為 `app.asar` ,
然后將其放到 Electron 的資源文件夾下,然后 Electron 就會試圖讀取這個庫文件并從中啟動。
如下所示:
在 OS X 中:
```text
electron/Electron.app/Contents/Resources/
└── app.asar
```
在 Windows 和 Linux 中:
```text
electron/resources/
└── app.asar
```
更多的細節請見 [Application packaging](application-packaging.md).
## 更換名稱與下載二進制文件
在使用 Electron 打包你的應用程序之后,你可能需要在分發給用戶之前修改打包的名字。
### Windows
你可以將 `electron.exe` 改成任意你喜歡的名字,然后可以使用像
[rcedit](https://github.com/atom/rcedit)
編輯它的 icon 和其他信息。
### OS X
你可以將 `Electron.app` 改成任意你喜歡的名字,然后你也需要修改這些文件中的
`CFBundleDisplayName`, `CFBundleIdentifier` 以及 `CFBundleName` 字段。
這些文件如下:
* `Electron.app/Contents/Info.plist`
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
你也可以重命名幫助應用程序以避免在應用程序監視器中顯示 `Electron Helper`,
但是請確保你已經修改了幫助應用的可執行文件的名字。
一個改過名字的應用程序的構造可能是這樣的:
```
MyApp.app/Contents
├── Info.plist
├── MacOS/
│?? └── MyApp
└── Frameworks/
├── MyApp Helper EH.app
| ├── Info.plist
| └── MacOS/
| ?? └── MyApp Helper EH
├── MyApp Helper NP.app
| ├── Info.plist
| └── MacOS/
| ?? └── MyApp Helper NP
└── MyApp Helper.app
├── Info.plist
└── MacOS/
?? └── MyApp Helper
```
### Linux
你可以將 `electron` 改成任意你喜歡的名字。
## 通過重編譯源代碼來更換名稱
通過修改產品名稱并重編譯源代碼來更換 Electron 的名稱也是可行的。
你需要修改 `atom.gyp` 文件并徹底重編譯一次。
### grunt打包腳本
手動檢查 Electron 代碼并重編譯是很復雜晦澀的,因此有一個Grunt任務可以自動的處理
這些內容 [grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
這個任務會自動的處理編輯 `.gyp` 文件,從源代碼進行編譯,然后重編譯你的應用程序的本地 Node 模塊以匹配這個新的可執行文件的名稱。
- 介紹
- 常見問題
- Electron 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server