Skip to content

SyncWatch同步观影 v2.1.7

Choose a tag to compare

@xuange6610 xuange6610 released this 19 Aug 06:14
· 120 commits to main since this release

和朋友、家人、情侣远程一起看电影。v2.1.7 提供 Windows 一键安装/便携运行、Android、独立服务器,以及由真实 macOS runner 构建的 Intel / Apple Silicon 包。

第一次使用请立即修改默认管理员密码,并先在局域网完成连接测试,再开启公网访问。

下载文件 版本标识 最适合谁 一句话说明
SyncWatch-Experience-Client-Portable-v2.1.7-x64.exe 体验版 Windows 普通成员 连接已有服务器,不在本机启动服务端
SyncWatch-Standard-Server-Portable-v2.1.7-x64.exe 标准版 不想安装的 Windows 房主 内置运行环境和 cloudflared,绿色便携运行
SyncWatch-v2.1.7-Full-Offline-Installer-x64.exe 完整版 需要离线全平台下载中心的 Windows 房主 安装向导、完整服务器运行时,并离线内嵌 Windows、Android 与 macOS 发布文件
SyncWatch-v2.1.7-Full-Offline-Portable-x64.exe 完整版 不想安装的 Windows 房主 独立 EXE,直接双击运行;功能和离线资源与安装完整版相同
macOS Intel 完整版 DMG / ZIP 完整版 Intel Mac 房主 x64 完整服务器、cloudflared 和全平台离线下载中心
macOS Apple 芯片完整版 DMG / ZIP 完整版 Apple Silicon 房主 arm64 完整服务器、cloudflared 和全平台离线下载中心
cloudflared Windows x64 MSI / x86 MSI 公网工具 需要手工安装 Tunnel 的 Windows 用户 双击 MSI 安装,不要双击命令行 EXE;安装后运行 cloudflared --version
Node.js Windows x64 MSI / Windows ARM64 MSI / macOS Intel PKG / macOS Apple 芯片包 开发环境 源码开发或独立服务器用户 安装后运行 node --version;正式 SyncWatch EXE 已内置运行环境,无需另装 Node.js

v2.1.7 更新公告

公网访问稳定性

  • 修复 Cloudflare 临时地址连续尝试三种连接方式仍超时的问题。原来的回退路径仍强制绕过系统代理,导致 VPN、TUN、PAC 或必须经过代理的家庭网络无法建立 Quick Tunnel。
  • 新增真正独立的系统网络回退策略:最后一次尝试恢复系统代理路由,不再把公网验证固定到物理网卡。
  • Node.js 网络探测新增 HTTP_PROXYHTTPS_PROXYALL_PROXY 支持;Electron 环境优先复用操作系统网络设置。
  • 公网 URL 验证与 cloudflared 边缘连接解耦,避免本地验证策略反过来阻断已经建立的 Tunnel。
  • 实际公网回归覆盖 HTTPS、双客户端、40 次连续拖动中止、地址稳定性、H.264 播放和共享画面。

Windows 三种发布版本

  • 体验版只保留加入现有服务器所需的 Windows 客户端,适合普通成员。
  • 标准版是绿色便携服务器,内置 Electron/Node.js 运行时、FFmpeg、FFprobe 和 cloudflared,下载后直接双击。
  • 完整版同时提供 Windows 安装 EXE、Windows 独立 EXE,以及 macOS Intel/Apple Silicon 的 DMG 和 ZIP;每一个都是超过 1 GB 的真实完整构建。
  • 每个完整版除当前平台的完整服务端和 cloudflared 外,还真实内嵌 Windows 客户端、Android 通用 APK、macOS Intel/Apple Silicon 的服务器和客户端 ZIP。
  • 房主启动任意完整版即可通过登录页或账号菜单向不同设备分发客户端,不需要临时再从 GitHub 拉取这些文件。
  • 新增离线资源清单和最小体积校验;缺少任意平台文件、文件异常偏小或安装包达到 GitHub 2 GiB 上限时,发布流程会直接失败。

打包与依赖完整性

  • 修复 Windows 标准版在源码环境可运行、但 Electron 打包后缺少 undici 生产依赖的问题。根因是 package.json 和 npm 锁文件已声明该依赖,但 pnpm-lock.yaml 的直接生产依赖清单未同步,Electron Builder 因此没有把它收入 app.asar
  • 同步 pnpm 锁文件并新增仓库契约测试,以后如果 undici@7.29.0 再次从直接生产依赖中丢失,CI 会在打包前直接报错。
  • 重新生成 Windows 标准版和体验版,并确认标准版 app.asar 实际包含 node_modules/undici,不仅检查源码依赖。
  • 成品回归实际启动 EXE,验证 HTTP 公开配置、Socket.IO polling、WebSocket、账号注册、创建房间、上传 H.264/AAC MP4 与选择播放的完整链路。
  • 修正 Windows GitHub Actions 的发布环境和顺序:新 Runner 先安装项目声明的 pnpm@11.9.0,再从当前 Release 下载并验证 cloudflared.exe;构建前扫描源码隐私字段,三档成品生成后再扫描发布文件。这同时避免 Electron Builder 因找不到 pnpm 报 No JSON content found 和在产物尚未存在时误报 no release artifacts found
  • Windows 三个本地构建步骤均显式使用 --publish never,确保只在产物收集后的 gh release upload 步骤需要 GitHub 凭证,不会在构建阶段因设置中无 GH_TOKEN 而失败。

下载入口管理

  • 管理中心的“通知/通告设置”新增“显示 Windows、Android 和 macOS 下载入口”。
  • 关闭后同时隐藏登录页和登录后的 Windows 客户端、Android 客户端、macOS 服务器、macOS 客户端入口,共八个按钮。
  • 设置持久保存到服务器,并通过 Socket.IO 实时同步给已在线用户;重新开启后无需重启服务器即可恢复。
  • 该设置只控制界面入口,不会删除完整版内嵌的离线文件。

文档与发布规范

  • 应用、协议、下载路由、备份文件名、Android、macOS、Windows 构建和测试统一升级为 2.1.7
  • README、GitHub Pages、发布文件地图、运行环境教程和 Wiki 源文档补充版本选择、离线完整版结构、cloudflared/Node.js 安装与常见错误。
  • Release 说明中的成品文件改为直接下载链接,并明确体验版、标准版、完整版的用途和边界。
  • 发布前继续执行隐私扫描,禁止发布包出现私人姓名;产品作者字段统一使用 xuan

普通用户怎么选

体验版

标准版与完整版

跨平台完整套装

完整版把各平台已经真实构建的安装文件作为离线下载资源装进 Windows EXE。它不会在 Windows 上运行 APK 或 macOS ZIP,而是让房主启动 SyncWatch 后,成员从登录页或账号菜单直接下载适合自己设备的文件:

  1. 房主下载 Windows/macOS 服务器包或独立服务器 ZIP。
  2. Windows 成员下载客户端 EXE。
  3. Android 成员下载通用 APK。
  4. Mac 成员按 Intel x64 / Apple Silicon arm64 下载客户端。
  5. 临时公网访问所需 cloudflared 已内置在正式服务器包,也提供独立工具供管理员手工部署。

内嵌资源包括 Windows 客户端、Android 通用 APK、macOS 服务器 x64/arm64 ZIP、macOS 客户端 x64/arm64 ZIP,以及服务器运行所需的 cloudflared。所有文件都是真实发布资产,不使用填充文件。管理员可在“管理中心 → 通知/通告设置”关闭“显示 Windows、Android 和 macOS 下载入口”,一次隐藏登录页和账号菜单中的全部平台下载按钮;关闭只隐藏入口,不删除离线文件。

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、读取配置、检测端口、启动 HTTP/WebSocket 服务、显示启动状态并打开 Electron 界面。

同一数据目录只允许一个实例写入。连续双击时会显示已运行实例的聚焦/安全退出操作,不会启动两个服务写坏数据。不同目录仍可运行互相隔离的服务器。

macOS

macOS 服务器/客户端各提供:

  • Intel 完整版:DMG / ZIP

  • Apple Silicon 完整版:DMG / ZIP

  • Intel 客户端:DMG / ZIP

  • Apple Silicon 客户端:DMG / ZIP

  • Intel 服务器:DMG / ZIP

  • Apple Silicon 服务器:DMG / ZIP

这些资产由 GitHub Actions 的真实 macos-14 runner 构建并检查文件大小、SHA-256 和隐私字段。现代 macOS 不支持 32 位应用,因此不会提供虚假的 macOS 32 位包。

架构支持边界

  • Windows 正式桌面包:x64。当前 Electron 41 和媒体工具发布链不提供可完整验证的 Windows 32 位组合。
  • Android:通用 APK 包含 armeabi-v7a(32 位)、arm64-v8ax86_64
  • macOS:Intel x64 与 Apple Silicon arm64;无现代 macOS 32 位。
  • 独立服务端:以 Node.js 22+ 对目标系统和架构的官方支持为准。

cloudflared 独立工具

cloudflared 是 Cloudflare Tunnel 连接器,把本机 HTTP、Socket.IO 和媒体 Range 请求转发成 HTTPS 公网入口。它不保存 SyncWatch 的账号或影片。完整服务器包优先使用内置文件;独立工具仅供手工部署、诊断或修复。

本次修复了“Cloudflare 临时地址接口连接超时”时三种策略实际都保持直连的问题。新版最后一次自动尝试会恢复系统网络/代理并取消物理网卡绑定。完整安装和排错步骤见 cloudflared 与 Node.js 教程

Node.js 官方环境包

Node.js 只用于源码开发和独立服务端,Windows 正式 EXE 不需要另装 Node.js。本 Release 附带 Node.js 24.19.0 官方包:

安装后使用 node --versionnpm --version 验证。来源为 nodejs.org,下载后请核对本页显示的 SHA-256。

首次启动

  1. 下载与你的平台和角色匹配的文件。
  2. 双击 Windows 安装版/便携版,或安装 Android/macOS 包。
  3. 使用 admin / admin888 首次登录。
  4. 立即修改管理员密码。
  5. 创建带密码的房间,上传合法媒体并等待分析。
  6. 先用同一 Wi-Fi 的第二台设备验证同步播放。
  7. 需要异地连接时再开启 Cloudflare Tunnel 或自己的 HTTPS 域名。
  8. 结束后停止 Tunnel,并备份整个 SyncWatch同步观影-Data/

完整教程:GitHub Pages · 仓库文档 · Wiki

安全与许可

本版本已通过仓库规范、隐私字段、桌面发布、Android 包、Cloudflared bundle 和核心集成检查。发布包未签署商业代码签名证书时,Windows/macOS 可能显示系统来源提示;请只从本 Release 下载并核对摘要。

SyncWatch同步观影按 Apache-2.0 开源。原创项目设计和本仓库原始实现由 xuan 完成。再发布必须保留许可证、NOTICE 和适用的原始署名,标注修改,不得把原始项目或少量修改虚假宣称为自己的原创作品。