Upgrade Guide · Per-platform versions

各端独立升级

macOS、Windows、Android、iOS 的版本号不必相同。 安装包形态与发布节奏不同(DMG / NSIS / APK / TestFlight),不可能也不需要四端锁同一个版本号。 每个客户端只检查自己平台通道是否有新版本。

当前各端最新(实时)

数据源:/releases/catalog.json + 各通道 latest.json。页面加载时自动探测。

macOS (Apple Silicon)

检测中…

desktop/latest.json

升级方式:应用内 OTA(Ed25519 验签)或官网 DMG

Windows x64

检测中…

desktop/latest.json

升级方式:应用内 OTA 或 NSIS 安装包

Android

检测中…

mobile/android/latest.json

升级方式:官网 APK 覆盖安装(应用内「检查本端更新」)

iOS

检测中…

mobile/ios/latest.json

升级方式:TestFlight / 企业签 / App Store

macOS Intel

检测中…

有产物时单独登记版本,可与 arm64 不同

为什么版本号可以不一致?

  • 发布物不同:Mac 用 DMG + OTA 签名;Windows 用 NSIS;Android 用 APK;iOS 走 Apple 审核/TestFlight。
  • 节奏不同:某一端先修了权限/ICE,可以单独发版,不必等其它端打包完成。
  • 检查逻辑独立:桌面只读 platforms[本机 key].version;手机只读 Android 或 iOS 自己的 latest.json
  • 协议兼容:远控互通依赖 wire 协议兼容,而不是「版本字符串完全一样」。若某次协议不兼容,会在对应端的 min_version 里强制本端升级。

桌面端如何升级

方式 A · 应用内更新(推荐)

  1. 打开本机已安装的 GG远程。
  2. 启动后自动检查,或 设置 → 检查更新
  3. 只比较本机架构(如 darwin-aarch64 / windows-x86_64)条目。
  4. 确认后下载、验签并启动安装包;装完后完全退出再打开。

清单:/releases/desktop/latest.json

方式 B · 官网安装包

  1. 打开 下载中心,选自己的系统。
  2. 覆盖安装即可;不必关心手机当前版本号是多少。
  3. macOS:确认隐私权限勾选的是当前安装路径
  4. Windows:建议管理员运行(便于控制 UAC 桌面)。

手机端如何升级

  1. Android:关于页点「检查本端更新」,或下载 GGRemote-android.apk 覆盖安装。 清单:/releases/mobile/android/latest.json
  2. iOS:按 TestFlight / 企业签 / App Store 渠道更新。 清单:/releases/mobile/ios/latest.json
  3. 手机版本无需与 Mac/Win 数字相同;用同一账号登录即可。

运维:如何单独发某一端

只发 Mac(Windows 版本保持原样):

node scripts/publish-desktop-update.mjs \
  --version 0.2.9 \
  --notes "仅 macOS arm64" \
  --mac-arm path/to.dmg \
  --upload
# 默认 merge 已有 latest.json,不会删掉 windows 条目

只发 Android:

node scripts/publish-mobile-update.mjs \
  --platform android \
  --version 0.3.0 \
  --apk path/to.apk \
  --upload

平台级强制升级:在对应平台条目写 min_version,只影响该端客户端。

升级后检查清单

  • 本端「检查更新」提示已是最新(或已装上本端新版本)。
  • 同一账号登录,设备列表在线——不要求手机与电脑版本号一致。
  • macOS 被控:屏幕录制 + 辅助功能指向当前路径。
  • Windows 被控:权限体检通过;需要时管理员运行。
  • 新会话验证画面与键鼠;旧会话建议结束后重连。