ClavueClavue
macOS AI 工作台

手机端升级通道

手机端使用正式发布通道,而不是临时 APK 链接。客户端轮询版本化 JSON 清单,比较整数 build 号,并提示(或强制)安装。与 imux macOS 的 Sparkle 更新相互独立。Clavue Mobile 与 imux-mobile 各有独立清单。

清单

规范地址:

  • version — 展示用语义化版本
  • versionCode — Android 整数;主要升级判断键
  • iosBuildNumber / downloads.ios.buildNumber — iOS CFBundleVersion
  • downloads.android.apk — HTTPS APK 地址
  • downloads.ios.appStore / testFlight — 上架后填写
  • downloads.ios.ipa — App Store 签名归档地址(不可侧载)
  • forceUpdate / minVersionCode — 必要更新时禁止「稍后」
  • changelog[] — 弹窗与下载页文案
  • packageId — com.clavue.xw 或 com.imux.mobile
GET https://www.clavue.com/downloads/mobile/latest-mobile.json
# Clavue Mobile · package com.clavue.xw

GET https://www.clavue.com/downloads/mobile/latest-imux-mobile.json
# imux-mobile · package com.imux.mobile

# Cache-bust query: ?_=<timestamp> (apps always append)
# Both hosts: www.clavue.com and www.iccjk.com serve the same /downloads/mobile/ tree

客户端行为

  • 冷启动:强制拉网检查
  • 回到前台:节流(默认 6 小时,可由 checkIntervalHours 覆盖)
  • 设置 → 检查更新:强制拉网、忽略「稍后」
  • 本地通知渠道 app-updates(每个远端 versionCode 一次)
  • 「稍后」写入 dismissedVersionCode,直到更高远端 code

发布构建

同一包名下 versionCode 必须严格递增。Clavue 与 imux-mobile 不得共用包名或互相覆盖清单。
# Clavue Mobile
cd clavue-mobile
./scripts/publish-android-release.sh --bump patch --deploy \
  --notes "修复说明;第二条 changelog"

# imux-mobile (coding remote)
cd imux-mobile
./scripts/publish-android-release.sh --bump patch --deploy \
  --notes "配对与投影改进"

# Force users below a floor:
./scripts/publish-android-release.sh --bump patch --deploy --force-update

iOS 发布

先将 Info.plist 的版本号与 app.json 同步,再 Archive/导出 App Store IPA,用 Transporter 上传。站上备份 /downloads/mobile/clavue-mobile-vX.Y.Z-ios.ipa,并在清单写入 downloads.ios.ipa、buildNumber、status=ready_for_app_store。商店上架后写入 appStore 并将 status 设为 published。详见 clavue-mobile/IOS_RELEASE.md。

下一步