diff --git a/docs-translations/zh-CN/tutorial/application-distribution.md b/docs-translations/zh-CN/tutorial/application-distribution.md index 07c9c0d8748e..baeba7886608 100644 --- a/docs-translations/zh-CN/tutorial/application-distribution.md +++ b/docs-translations/zh-CN/tutorial/application-distribution.md @@ -1,6 +1,8 @@ # 应用部署 -为了使用 Electron 部署你的应用程序,你存放应用程序的文件夹需要叫做 `app` 并且需要放在 Electron 的 +为了使用 Electron 部署你的应用程序,你需要下载 Electron 的[prebuilt +binaries](https://github.com/electron/electron/releases)。 +接下来,你存放应用程序的文件夹需要叫做 `app` 并且需要放在 Electron 的 资源文件夹下(在 macOS 中是指 `Electron.app/Contents/Resources/`,在 Linux 和 Windows 中是指 `resources/`) 就像这样: @@ -27,7 +29,7 @@ electron/resources/app ## 将你的应用程序打包成一个文件 -除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以通过打包你的应用程序为一个 [asar](https://github.com/atom/asar) 库文件以避免暴露你的源代码。 +除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以通过打包你的应用程序为一个 [asar](https://github.com/electron/asar) 库文件以避免暴露你的源代码。 为了使用一个 `asar` 库文件代替 `app` 文件夹,你需要修改这个库文件的名字为 `app.asar` , 然后将其放到 Electron 的资源文件夹下,然后 Electron 就会试图读取这个库文件并从中启动。 @@ -97,6 +99,13 @@ MyApp.app/Contents 你可以将 `electron` 改成任意你喜欢的名字。 +## 打包工具 + +除了手动打包应用程序,你还可以选择使用第三方打包工具来做这项工作: + +* [electron-builder](https://github.com/electron-userland/electron-builder) +* [electron-packager](https://github.com/electron-userland/electron-packager) + ## 通过重编译源代码来更换名称 通过修改产品名称并重编译源代码来更换 Electron 的名称也是可行的。 @@ -108,3 +117,50 @@ MyApp.app/Contents 这些内容 [grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell). 这个任务会自动的处理编辑 `.gyp` 文件,从源代码进行编译,然后重编译你的应用程序的本地 Node 模块以匹配这个新的可执行文件的名称。 + +### 创建一个自定义 Electron 分支 + +如果只是为了构建你的 app,你不需要创建一个自定义的 Electron 分支, +即使是“生产级”的应用程序。 +可以使用工具,如 `electron-packager` 或 `electron-builder` 来 +“重塑” 你的 Electron app。 + +当你想直接进入 Electron 来修改 C++ 代码,你需要 fork Electron +,不能使用 upstreamed 或者 rejected 官方版本。 +作为 Electron 的维护者,我们非常希望 +你的方案能够工作,并尽最大的努力让你的修改 +进入 Electron 的官方版本,创建自定义分支对你来说更简单,最后, +我们感谢你的帮助。 + +#### 通过 surf-build 创建一个自定义版本 + +1. 通过 npm 下载 [Surf](https://github.com/surf-build/surf): + `npm install -g surf-build@latest` + +2. 创建一个新的 S3 bucket 并按照以下结构创建文件夹: + + ``` + - atom-shell/ + - symbols/ + - dist/ + ``` + +3. 设置以下环境变量: + + * `ELECTRON_GITHUB_TOKEN` - 一个在 GitHub 创建版本的 token + * `ELECTRON_S3_ACCESS_KEY`, `ELECTRON_S3_BUCKET`, `ELECTRON_S3_SECRET_KEY` - + 你将上传 Node.js 的 headers 以及符号的位置 + * `ELECTRON_RELEASE` - 设置为 `true`,上传部分将运行,不设置 +     和 `surf-build` 只是做 CI-type 的检查,适合每一个运行 +     拉取请求。 + * `CI` - 设置为 `true` ,否则无效 + * `GITHUB_TOKEN` - 设置为与 `ELECTRON_GITHUB_TOKEN` 相同 + * `SURF_TEMP` - 在 Windows 下设置为 `C:\Temp` 来防止路径太长的问题 + * `TARGET_ARCH` - 设置为 `ia32` 或 `x64` + +4. 在 `script/upload.py`,你_必须_为你的分支(`MYORG/electron`)设置 `ELECTRON_REPO`, + 尤其如果你本身是一个 Electron 贡献者。 + +5. `surf-build -r https://github.com/MYORG/electron -s YOUR_COMMIT -n 'surf-PLATFORM-ARCH'` + +6. 需要很长的时间来等待构建完成