
如何为 SoundCleod 搭建自动更新服务Nuts GitHub Releases 完整部署教程【免费下载链接】soundcleodSoundCloud for macOS and Windows项目地址: https://gitcode.com/gh_mirrors/so/soundcleodSoundCleod 是一款专为 macOS 和 Windows 打造的 SoundCloud 桌面客户端让你无需浏览器就能畅听海量音乐。想为 SoundCleod 搭建自动更新服务本教程将带你从零开始使用 Nuts 更新服务器与 GitHub Releases 构建一套完整的自动更新部署方案让每次发布新版本都能自动推送到用户桌面真正实现一键发布、全量升级。整个流程全部基于免费开源工具适合任何想学习 Electron 应用自动更新机制的开发者。SoundCleod 的自动更新是如何工作的在动手部署前先理解 SoundCleod 的更新机制。它的更新逻辑写在 app/auto-updater.js 中应用启动时会向更新服务器请求${baseUrl}/update/${platform}/${version}这个地址服务器根据操作系统和当前版本号返回最新的安装包下载地址。更新服务器的角色由Nuts扮演。Nuts 是一个专门为 GitHub Releases 设计的轻量更新服务你只需要把新版本安装包上传到 GitHub ReleasesNuts 就会自动生成对应的更新元数据SoundCleod 客户端便能发现并下载新版本。搭建自动更新服务的前置条件开始部署前请确认你已经准备好以下材料✅ 一个 GitHub 账号用于存放发布包✅ 一个 Heroku 账号用于托管 Nuts 服务免费即可✅ 本地已安装 Git 与 Node.js✅ 一份 SoundCleod 源码可克隆https://gitcode.com/gh_mirrors/so/soundcleod仓库获取整个过程大约需要 20 分钟全程可视化操作无需编写任何服务器代码。第一步一键部署 Nuts 服务到 HerokuNuts 项目提供了一键部署按钮这是整个教程中最简单的一步打开 Nuts 项目主页点击Deploy to Heroku按钮在弹窗中为应用起一个名字例如soundcleod-updates选择部署区域后点击Deploy App等待构建完成部署成功后访问https://你的应用名.herokuapp.com/看到正常响应即代表 Nuts 服务已上线这里只需要在 Heroku 控制台填写GitHub 仓库地址格式为用户名/仓库名Nuts 会自动读取该仓库 Releases 中的安装包信息。第二步生成 GitHub Token 与配置密钥Nuts 需要访问你的 GitHub Releases 来拉取版本信息因此需要一个 Token打开 GitHub 设置页面的Developer settings → Personal access tokens点击Generate new token勾选public_repo权限即可无需其他权限复制生成的 Token填入 Heroku 应用的环境变量GITHUB_TOKEN再生成一个随机字符串可用openssl rand -hex 16生成填入环境变量GITHUB_SECRET这个密钥用于验证 Webhook 请求来源配置完成后Nuts 就能访问你的 Releases 了。第三步配置 GitHub Webhook 实现自动刷新为了做到发布即更新还需要让 GitHub 在发布新版本时主动通知 Nuts进入你的仓库设置页面点击Webhooks → Add webhookPayload URL填写https://你的应用名.herokuapp.com/refreshContent type选择application/jsonSecret填写上一步生成的GITHUB_SECRET随机字符串在Which events中只勾选Release published发布版本事件点击Add webhook保存配置完成后每当你在 GitHub 发布新版本Nuts 都会自动刷新更新信息SoundCleod 用户下次启动应用时就会收到更新提示。第四步让 SoundCleod 指向你的更新服务SoundCleod 默认的更新服务器地址是https://updates.soundcleod.com想使用自己的服务只需在启动时通过参数覆盖即可。在 app/options.js 中可以看到更新地址由--auto-updater-base-url参数控制。你可以开发调试时直接运行electron ./app --auto-updater-base-urlhttps://你的应用名.herokuapp.com正式发布时在打包命令中带上该参数或修改 app/auto-updater.js 中的地址逻辑这样你的 SoundCleod 客户端就会从自建服务获取更新了。第五步发布新版本并验证更新流程一切就绪后按照项目维护文档 MAINTENANCE.md 中的流程发布新版本使用 release.sh 脚本提升版本号并生成更新日志执行打包命令生成对应平台的安装包macOS 生成.dmgWindows 生成 Squirrel 安装包配置见 package.json将安装包上传到 GitHub Releases填写版本说明后发布Webhook 自动通知 Nuts 刷新更新信息在已安装旧版本的机器上启动 SoundCleod观察控制台输出autoUpdater update available即代表更新流程已打通常见问题排查更新请求 404检查 Nuts 的GITHUB_TOKEN是否配置正确以及仓库名是否填写为用户名/仓库名格式。Webhook 发送失败确认 Payload URL 末尾的/refresh路径拼写正确且 Secret 与 Heroku 环境变量中的GITHUB_SECRET完全一致。Windows 上无法自动更新SoundCleod 的 Windows 版使用 Squirrel 更新机制需要确认打包时使用了squirrel目标且更新元数据RELEASES 文件随安装包一起发布。只想跳过自动更新可以在 main.js 中看到通过useAutoUpdater开关即可控制是否启用自动更新模块。总结通过 Nuts GitHub Releases你可以在半小时内为 SoundCleod 搭建一套完整的自动更新服务Nuts 负责生成更新元数据GitHub Releases 负责存放安装包Webhook 负责自动化通知三者配合实现发布新版本 → 用户自动升级的闭环体验。这套方案同样适用于其他基于 Electron 的桌面应用学会了它你就掌握了桌面应用自动更新服务的完整部署方法。【免费下载链接】soundcleodSoundCloud for macOS and Windows项目地址: https://gitcode.com/gh_mirrors/so/soundcleod创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考