跳到主要内容

Wework macOS 发布

English | 简体中文

Wework macOS 应用使用 Tauri updater 支持自动升级。发布流程由 wework/scripts/release-mac-app.sh 负责完成版本号计算、Tauri 构建、updater 签名、DMG 处理和上传。

发布模型

  • 默认构建 universal-apple-darwin,生成一个同时支持 Apple Silicon 和 Intel Mac 的安装包。
  • updater manifest 同时写入 darwin-aarch64darwin-x86_64,两个平台可以指向同一个 universal archive。
  • src-tauri/tauri.conf.json 不保存发布服务地址或 updater 公钥。发布脚本会在构建时通过临时 Tauri config 注入。
  • updater 私钥和发布 token 只通过环境变量或本机文件读取,不提交到仓库。

环境变量

发布前需要在当前 shell 中提供这些变量:

export WEWORK_UPDATE_BASE_URL=https://example.com/wework/update
export WEWORK_UPDATE_PUBLISH_TOKEN=...
export TAURI_UPDATER_PUBKEY=...

updater 私钥可以通过 TAURI_SIGNING_PRIVATE_KEY 直接提供,也可以使用默认文件路径 ~/.tauri/wework-updater.key

export TAURI_SIGNING_PRIVATE_KEY=...
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=...

生产发布还需要 Developer ID 签名和 Apple notarization 配置:

export MACOS_APP_SIGN_IDENTITY="Developer ID Application: Example (TEAMID)"
export MACOS_NOTARY_PROFILE=wework-notary

也可以用 Apple ID、Team ID 和 app-specific password 生成 notary profile:

export APPLE_BUILD_ID=...
export APPLE_BUILD_TEAM_ID=...
export APPLE_BUILD_PASSWORD=...

本地验证

本地验证会生成 local updater 目录,默认地址是 http://127.0.0.1:8787/dist/wework

cd wework
scripts/release-mac-app.sh --target local --version 0.1.99 --notes "Local verification."

如果要验证 local updater,启动一个静态文件服务指向脚本输出目录:

python3 -m http.server 8787 --directory src-tauri/target/release/local-update-server

生产发布

生产发布会读取远端 latest.json 自动计算下一个 patch 版本;也可以用 --version 指定版本:

cd wework
scripts/release-mac-app.sh --target prod --notes "Release notes."

脚本会上传 .app.tar.gz、签名文件和 DMG。下载入口应指向最新的 universal DMG;updater 客户端则通过 latest.json 获取对应平台的 archive URL 和 signature。