Skip to content

macOS 签名与 GitHub Release

Ship

主路径:GitHub Actions 编译、Developer ID 签名、Apple 公证,并挂 Release。
Workflow:.github/workflows/release.yml
当前仓库:21stware/xbuckle(原 ctx3x3 已更名)。

签名 / 公证凭证与 vav 同一套,已写入本仓 Actions secrets(CSC_* + APPLE_API_*)。日常发布不必再手填

发布

  1. main 已推上远端,package.json"version" 正确。
  2. 打 tag 并推送(触发 workflow):
bash
VERSION=$(node -p "require('./package.json').version")
git tag -a "v$VERSION" -m "XBuckle v$VERSION"
git push origin "v$VERSION"

或对已有 tag:

bash
gh workflow run release.yml -f tag=v1.0.0
gh run watch
  1. Actions → Release;产物在
    https://github.com/21stware/xbuckle/releases

Runner:macos-14(arm64)→ .dmg / .zip

Secrets(已配置,仅换证时改)

Secret说明
CSC_LINKDeveloper ID .p12 的 base64
CSC_KEY_PASSWORD.p12 密码
APPLE_API_KEYApp Store Connect API Key 的 .p8 正文
APPLE_API_KEY_IDKey ID(如 TZFQYH68G6
APPLE_API_ISSUERIssuer UUID
APPLE_TEAM_IDTeam ID(R54TY86R4C

与 vav 对齐;换证或轮换 API Key 后用 gh secret set 更新两侧即可。

本机备选

bash
export CSC_NAME="Cheng Aobo (R54TY86R4C)"   # 不要带 "Developer ID Application:" 前缀
# 公证可用 API key 文件:
export APPLE_API_KEY="$HOME/.appstoreconnect/AuthKey_<KEY_ID>.p8"
export APPLE_API_KEY_ID="…"
export APPLE_API_ISSUER="…"
export APPLE_TEAM_ID="R54TY86R4C"
npm run electron:release

常见问题

现象处理
Actions 签名失败检查 CSC_LINK / CSC_KEY_PASSWORD 是否过期
公证失败检查 APPLE_API_*;Key 需有 Developer 权限
tag 已存在想重编gh workflow run release.yml -f tag=vX.Y.Z

开发期(不签名)

bash
npm run electron:dev
CSC_IDENTITY_AUTO_DISCOVERY=false npm run electron:pack