SyncWatch同步观影
MACOS BUILD / v2.2.0

macOS 构建与发布

说明 Intel 与 Apple Silicon 的构建准备、签名边界、产物校验和发布方式。

页面内容从维护中的 Markdown 生成,网页负责阅读体验;源码入口单独提供下载。

打开入口route / menu
填写配置input / policy
保存状态server / data
验证结果client / check
记录审计log / trace
成员反馈socket / event
可恢复backup / restore
拖动 360° · 滚轮缩放 · 方向键微调

构建前

  • 安装 Node.js 22+、Xcode Command Line Tools,并执行 npm ci
  • 保持网络可访问 GitHub。构建脚本会读取 Cloudflare 官方 Release API,下载 Intel/Apple Silicon 资产并强制校验 GitHub 提供的 SHA256 摘要。
  • 生产发布时配置 Apple Developer ID、签名证书、公证凭据和 CSC_LINK/CSC_KEY_PASSWORD

脚本会分别以 npm_config_arch=x64npm_config_arch=arm64 重装锁定依赖后再打包,确保 FFmpeg/FFprobe 与各自架构一致,避免把主机构架的媒体二进制误装进另一架构的 DMG。

构建

bash scripts/build-macos.sh

在 Windows 或 Linux 上执行同一条命令会生成四个未签名、可直接解压运行的 macOS .app ZIP:脚本使用 Electron 官方 Darwin 运行时,保留框架符号链接,并把目标架构的 ffmpeg、ffprobe 和 cloudflared 一起放入服务器包。Windows/Linux 不能生成真实 DMG,也不能完成 Apple Developer ID 签名或公证;这几步必须在 macOS 主机或 macOS CI 上执行。

也可以在 Windows PowerShell 中只生成 ZIP:

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build-macos-portable.ps1

生成到根目录 dist/ 的文件:

  • SyncWatch-Server-macOS-v2.2.0-x64.dmg / .zip
  • SyncWatch-Server-macOS-v2.2.0-arm64.dmg / .zip
  • SyncWatch-Client-macOS-v2.2.0-x64.dmg / .zip
  • SyncWatch-Client-macOS-v2.2.0-arm64.dmg / .zip

不再在项目根目录或 dist-mac-* 保留重复副本。ZIP 适合企业内部分发和完整离线包内嵌;Windows 发布机不会伪造 macOS 文件。

GitHub Release 使用仅含 ASCII 的公共下载名,避免平台上传接口删除中文后造成客户端与服务器同名覆盖:

  • SyncWatch-Server-macOS-v2.2.0-x64.dmg / .zip
  • SyncWatch-Server-macOS-v2.2.0-arm64.dmg / .zip
  • SyncWatch-Client-macOS-v2.2.0-x64.dmg / .zip
  • SyncWatch-Client-macOS-v2.2.0-arm64.dmg / .zip

下载产物如何发布

服务器会自动检查以下位置(优先使用 DMG,没有 DMG 时使用 ZIP):

  • 与服务器可执行文件同级的 mac/
  • 项目根目录的 dist/
  • 部署包中的 mac/ 目录。

文件名必须与以下格式一致:

正式资产使用 SyncWatch-Server-macOS-v2.2.0-x64.dmgSyncWatch-Server-macOS-v2.2.0-arm64.zip(客户端同理)。旧的中文本地文件名仍可被服务器兼容读取;只有真实存在且非空的文件才会出现在下载按钮和 /api/public-config 中。

从 HTTPS 发布站点提供产物

如果不想占用服务器磁盘,在服务器根目录的 mac/mac-distribution.json 中配置真实的 HTTPS URL。可从 mac-distribution.example.json 复制并修改;示例中的 downloads.example.com 不是可用地址,不会被当成产物。也可使用环境变量 SYNCWATCH_MAC_SERVER_ARM64_DMG_URL 等单个地址,或 SYNCWATCH_MAC_RELEASE_BASE_URL 以标准文件名提供全部八个产物。远程下载使用 302 重定向,不经过 SyncWatch同步观影 服务器传输视频或安装包。

查看可用枞举:GET /api/public-config。如果没有真实产物,下载接口会返回 MACOS_ARTIFACT_UNAVAILABLE 和构建/配置指引,不会返回一个伪造的 DMG。

Windows 发布机的可交付边界

Windows 无法生成可运行、可签名和可公证的 macOS DMG。请在 macOS 主机或 macOS CI 运行 bash scripts/build-macos.sh,然后将生成的 DMG/ZIP 放入上述目录,或上传到 HTTPS 发布站点并配置 manifest。未配置真实产物时界面显示“尚未提供”是正确状态,不应下载一个伪造文件。

macOS 构建与发布相关真实界面截图 1
macOS 构建与发布真实界面证据 1
macOS 构建与发布相关真实界面截图 2
macOS 构建与发布真实界面证据 2
操作完成后请回到真实应用验证结果。不要在公开 Issue、截图或日志中提交密码、令牌、真实 IP、邮箱或私人媒体信息。