手机端升级通道
手机端使用正式发布通道,而不是临时 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-updateiOS 发布
先将 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。