Kev*_*Kev 8 testing auto-update electron electron-builder
我构建了一个Electron应用程序,现在我正在研究如何分发它.我和电子制造商一起去处理包装等.
对于一些上下文,作为Web开发人员,我习惯于在Web服务器上不断部署Web应用程序,但我很难弄清楚如何在Electron中分发打包的应用程序.
在电子建设者文档中,有一个关于测试自动更新的简短提及:
"请注意,为了在不打包应用程序的情况下开发/测试更新的UI/UX,您需要在项目的根目录中创建名为dev-app-update.yml的文件,该文件与电子构建器配置中的发布设置相匹配(但是以YAML格式)"
但是,它相当含糊......
所以我实际上有两个问题:
1.我如何实际测试自动更新流程?
我是否需要实际发布新版本以在本地触发更新?似乎很不清楚,这就像开发生产服务器一样.
2.是否可以对未签名的代码进行回退?
我还没有任何代码签名证书.因此OS/app将阻止自动更新.但是,我仍然想告诉用户更新可用,以便他们可以手动下载应用程序.我能这样做吗?(回到第1点,我希望能够测试这个流程)
小智 5
我刚刚处理完这件事。我还想针对非生产服务器进行测试,避免每次迭代时都必须打包我的应用程序。为了测试下载,我必须签署我的应用程序,这减慢了速度。但听起来您只需要检查更新。我认为您可以按以下方式执行...
我创建了一个虚拟的 github repo,然后创建了一个dev-app-update.yml包含以下内容的文件:
owner: <user or organization name>
repo: dev-auto-update-testing
provider: github
Run Code Online (Sandbox Code Playgroud)
此文件的预期路径默认为您无法访问的位置。值得庆幸的是,您可以像这样覆盖它:
if (isDev) {
// Useful for some dev/debugging tasks, but download can
// not be validated becuase dev app is not signed
autoUpdater.updateConfigPath = path.join(__dirname, 'dev-app-update.yml');
}
Run Code Online (Sandbox Code Playgroud)
...对于您的情况来说应该足够了-因为您不需要下载。
如果没有,这里有一些其他提示:
checkForUpdates(),但如果checkForUpdatesAndNotify()给你一个有用的操作系统通知,那么你应该能够设置autoUpdater.autoDownload为 false 并最终得到你需要的。最后,听起来您可以跳过autoUpdater,因为无论如何您都不会使用下载功能。相反,您可以使用github 的发布 api,假设您使用 github 来托管您的发布。如果没有,那么您的主机应该有类似的东西。使用它来检查更新,然后从您的应用程序中告诉用户(也可以向他们显示可点击的 URL)。如果你想要操作系统通知电子有一个模块。
| 归档时间: |
|
| 查看次数: |
926 次 |
| 最近记录: |