gpt4 book ai didi

testing - 我如何测试 electron-builder 自动更新流程?

转载 作者:行者123 更新时间:2023-11-28 19:45:18 25 4
gpt4 key购买 nike

我构建了一个 Electron 应用程序,现在我正在研究如何分发它。我选择了electron-builder处理 package 等

作为一名 Web 开发人员,我习惯于在 Web 服务器上持续部署 Web 应用程序,但我很难弄清楚如何在 Electron 中分发打包的应用程序。

electron-builder docs有一个关于测试自动更新的简短提及:

"Note that in order to develop/test UI/UX of updating without packaging the application you need to have a file named dev-app-update.yml in the root of your project, which matches your publish setting from electron-builder config (but in YAML format)"

但是,它相当模糊......

所以我其实有两个问题:

<强>1。如何实际测试自动更新流程?

我是否需要实际发布新版本才能在本地触发更新?似乎很不清楚,这就像针对生产服务器进行开发。

<强>2。是否可以为未签名的代码提供回退?

我还没有任何代码签名证书。因此操作系统/应用程序将阻止自动更新。但是,我仍然想告诉用户有更新可用,这样他们就可以手动下载该应用程序。我可以这样做吗? (回到第 1 点,我希望能够测试这个流程)

最佳答案

我刚刚处理完这件事。我还想针对非生产服务器进行测试,避免每次迭代时都必须打包我的应用程序。为了测试下载,我必须签署我的应用程序,这会减慢速度。但听起来您只需要检查更新即可。我认为您可以按如下方式执行...

我创建了一个虚拟的 github 存储库,然后创建了一个文件 dev-app-update.yml 包含:

owner: <user or organization name>
repo: dev-auto-update-testing
provider: github

这个文件的默认路径应该是你无法访问的地方。值得庆幸的是,您可以像这样覆盖它:

    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');
}

...这对您的情况应该足够了——因为您不需要下载。

如果没有,这里有一些其他提示:

  • 您可以更改 Electron 构建器配置中的 repo 设置以指向您的虚拟 repo ,然后打包您的应用程序。这将为您提供一个打包的生产版本,指向您的虚拟存储库——这就是我进行下载测试的方式(尽管我有证书,并签署了我的应用程序)
  • 您应该调用 autoUpdate 的 checkForUpdates(),但是如果 checkForUpdatesAndNotify() 给您一个有用的操作系统通知,那么您应该能够设置 autoUpdater.autoDownload 为 false 并以您需要的结果结束。

最后,听起来您可以跳过 autoUpdater,因为无论如何您都不会使用下载功能。相反,您可以使用 github's releases api ,假设您使用 github 来托管您的版本。如果没有,那么您的主机应该有类似的东西。使用它来检查更新,然后从您的应用程序中告诉用户(也可以向他们提供可点击的 URL)。如果你想要操作系统通知 electron has a module for that .

关于testing - 我如何测试 electron-builder 自动更新流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com