Upgrade Guide · Per-platform versions
各端独立升级
macOS、Windows、Android、iOS 的版本号不必相同。 安装包形态与发布节奏不同(DMG / NSIS / APK / TestFlight),不可能也不需要四端锁同一个版本号。 每个客户端只检查自己平台通道是否有新版本。
当前各端最新(实时)
数据源:/releases/catalog.json + 各通道 latest.json。页面加载时自动探测。
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 · 应用内更新(推荐)
- 打开本机已安装的 GG远程。
- 启动后自动检查,或 设置 → 检查更新。
- 只比较本机架构(如
darwin-aarch64/windows-x86_64)条目。 - 确认后下载、验签并启动安装包;装完后完全退出再打开。
清单:/releases/desktop/latest.json
方式 B · 官网安装包
- 打开 下载中心,选自己的系统。
- 覆盖安装即可;不必关心手机当前版本号是多少。
- macOS:确认隐私权限勾选的是当前安装路径。
- Windows:建议管理员运行(便于控制 UAC 桌面)。
手机端如何升级
- Android:关于页点「检查本端更新」,或下载
GGRemote-android.apk 覆盖安装。
清单:
/releases/mobile/android/latest.json。 - iOS:按 TestFlight / 企业签 / App Store 渠道更新。
清单:
/releases/mobile/ios/latest.json。 - 手机版本无需与 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 被控:权限体检通过;需要时管理员运行。
- 新会话验证画面与键鼠;旧会话建议结束后重连。