diff --git a/docs-translations/zh-CN/api/auto-updater.md b/docs-translations/zh-CN/api/auto-updater.md index 845b4c24d9bf..75a816484b9c 100644 --- a/docs-translations/zh-CN/api/auto-updater.md +++ b/docs-translations/zh-CN/api/auto-updater.md @@ -1,6 +1,20 @@ # autoUpdater -这个模块提供了一个到 `Squirrel` 自动更新框架的接口。 +> 使应用程序能够自动更新。 + +进程: [Main](../glossary.md#main-process) + +`autoUpdater` 模块提供了来自 +[Squirrel](https://github.com/Squirrel) 框架的一个接口。 + +你可以快速启动多平台发布服务器来分发您的 +应用程序通过使用下列项目中的一个: + +- [nuts][nuts]: *针对你的应用程序的智能发布服务器,使用 GitHub 作为后端。 使用 Squirrel 自动更新(Mac 和 Windows)* +- [electron-release-server][electron-release-server]: *一个功能齐全, + electron 应用的自托管发布服务器,兼容 auto-updater* +- [squirrel-updates-server][squirrel-updates-server]: *对于使用 GitHub 版本的 Squirrel.Mac 和 Squirrel.Windows 的一个简单的 node.js 服务器* +- [squirrel-release-server][squirrel-release-server]: *一个简单的 Squirrel.Windows 的 PHP 应用程序,它从文件夹读取更新,并支持增量更新* ## 平台相关的提示 @@ -9,11 +23,21 @@ ### macOS 在 macOS 上,`autoUpdater` 模块依靠的是内置的 [Squirrel.Mac][squirrel-mac],这意味着你不需要依靠其他的设置就能使用。关于 -更新服务器的配置,你可以通过阅读 [Server Support][server-support] 这篇文章来了解。 +更新服务器的配置,你可以通过阅读 [Server Support][server-support] 这篇文章来了解。注意 [App +Transport Security](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35) (ATS) 适用于所有请求作为的一部分 +更新过程。需要禁用 ATS 的应用程序可以在应用程序的 plist 添加 +`NSAllowsArbitraryLoads` 属性。 + +**注意:** 你的应用程序必须签署 macOS 自动更新。 +这是 `Squirrel.Mac` 的要求。 ### Windows -在 Windows 上,你必须使用安装程序将你的应用装到用户的计算机上,所以比较推荐的方法是用 [grunt-electron-installer][installer] 这个模块来自动生成一个 Windows 安装向导。 +在 Windows 上,你必须使用安装程序将你的应用装到用户的计算机上,所以比较推荐的方法是用 [electron-winstaller][installer-lib], [electron-builder][electron-builder-lib] 或者 [grunt-electron-installer][installer] 模块来自动生成一个 Windows 安装向导。 + +当使用 [electron-winstaller][installer-lib] 或者 [electron-builder][electron-builder-lib] + +当使用 [electron-winstaller][installer-lib] 或者 [electron-builder][electron-builder-lib] 确保你不尝试更新你的应用程序 [the first time it runs](https://github.com/electron/windows-installer#handling-squirrel-events)(另见 [this issue for more info](https://github.com/electron/electron/issues/7155))。 建议使用 [electron-squirrel-startup](https://github.com/mongodb-js/electron-squirrel-startup) 获取应用程序的桌面快捷方式。 Squirrel 自动生成的安装向导会生成一个带 [Application User Model ID][app-user-model-id] 的快捷方式。 Application User Model ID 的格式是 `com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`, 比如 @@ -67,11 +91,16 @@ Linux 下没有任何的自动更新支持,所以我们推荐用各个 Linux `autoUpdater` 对象有以下的方法: -### `autoUpdater.setFeedURL(url)` +### `autoUpdater.setFeedURL(url[, requestHeaders])` * `url` String +* `requestHeaders` Object _macOS_ (optional) - HTTP请求头。 -设置检查更新的 `url`,并且初始化自动更新。这个 `url` 一旦设置就无法更改。 +设置检查更新的 `url`,并且初始化自动更新。 + +### `autoUpdater.getFeedURL()` + +返回 `String` - 当前更新提要 URL。 ### `autoUpdater.checkForUpdates()` @@ -81,8 +110,18 @@ Linux 下没有任何的自动更新支持,所以我们推荐用各个 Linux 在下载完成后,重启当前的应用并且安装更新。这个方法应该仅在 `update-downloaded` 事件触发后被调用。 +**注意:** `autoUpdater.quitAndInstall()` 将先关闭所有应用程序窗口 +并且只在 `app` 上发出 `before-quit` 事件。这不同于 +从正常退出的事件序列。 + [squirrel-mac]: https://github.com/Squirrel/Squirrel.Mac [server-support]: https://github.com/Squirrel/Squirrel.Mac#server-support [squirrel-windows]: https://github.com/Squirrel/Squirrel.Windows -[installer]: https://github.com/atom/grunt-electron-installer +[installer]: https://github.com/electron/grunt-electron-installer +[installer-lib]: https://github.com/electron/windows-installer +[electron-builder-lib]: https://github.com/electron-userland/electron-builder [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx +[electron-release-server]: https://github.com/ArekSredzki/electron-release-server +[squirrel-updates-server]: https://github.com/Aluxian/squirrel-updates-server +[nuts]: https://github.com/GitbookIO/nuts +[squirrel-release-server]: https://github.com/Arcath/squirrel-release-server