软件更新中心

发布与维护

先填好应用 ID 和上传令牌,下面的「发布包」和「应用信息」都用这一组凭据。 令牌由管理员用 updatesite token <应用ID> 生成,见 上传发布。

发布包

把符合发布规范的文件打成压缩包上传, 站点会自动解包并归档到 apps/<应用ID>/<版本号>/。 支持 .zip、.tar、.tar.gz、.tar.bz2。

版本号怎么确定

按以下顺序,前一步成功就不看后面的:

  1. 表单里的版本号,或接口的 ?version= 参数
  2. 压缩包里唯一的一级目录,且目录名是合法版本号
  3. 压缩包根目录下 release.json 的 version 字段

同名版本已存在时会整体替换。压缩包里的 release.json、 CHANGELOG.md、SHA256SUMS 会按规范被识别, 平台与架构则从安装包文件名推断。

应用信息

应用级元数据,写在 apps/<应用ID>/app.json,对所有版本生效。 填写应用 ID 后会自动载入现有内容,也可以点「读取当前信息」手动载入; 应用尚不存在时会新建。

保存会覆盖整个 app.json:表单里留空的字段会被清空(图标除外, 它由下面的图标上传维护)。

图标(PNG / JPEG / SVG / WebP,最大 2 MB)

命令行

export SITE=http://<站点地址>
export APP=<应用ID>
export TOKEN=<上传令牌>

# 发布一个版本
curl -fS -X POST -H "Authorization: Bearer $TOKEN" \
  -F "file=@release.zip" -F "version=1.2.0" \
  "$SITE/api/v1/apps/$APP/upload"

# 读取应用信息
curl -fS -H "Authorization: Bearer $TOKEN" "$SITE/api/v1/apps/$APP/metadata"

# 修改应用信息
curl -fS -X PUT -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"我的应用","vendor":"MTI"}' \
  "$SITE/api/v1/apps/$APP/metadata"

# 换图标
curl -fS -X PUT -H "Authorization: Bearer $TOKEN" \
  --data-binary @icon.png \
  "$SITE/api/v1/apps/$APP/icon"