准备发布以后,我加了个检查新版的入口:读取 GitHub 正式 Release,比较版本,再下载当前设备对应的包。暂时就用这条流程,没有另搭更新服务器。
Release 里的 release.json 列出平台、架构、包类型、下载地址、大小和 SHA256。客户端按这些字段选择;没有当前设备的包,就提示暂未提供。
版本按语义比较,1.10.0 排在 1.9.0 后面。默认跳过草稿和预发布。启动时在后台检查,设置里可以手动触发,同一个版本也不会反复提醒。
下载完成先比大小和 SHA256,通过以后再交给系统。Android 没有安装权限就进入授权流程,回来继续用已校验的包。Windows 启动安装器,Linux 和 macOS 打开下载位置。iPhone 提供未签名 IPA,安装前还需要自行签名。有传输任务时先处理任务,再退出程序。
更新请求失败会保留文件功能,手动检查显示错误并允许重试。我把版本比较和选包逻辑单独测了一遍,同版、旧版、预发布和缺架构的情况都走过;下载与清单不一致则停止安装。