Platforms 导读

macOS 签名:让权限记住你,别每次重编都弹窗

这页讲的是如何给 macOS 调试构建签名,核心目的是让 TCC 权限(通知、录屏、麦克风等)在每次重编后不丢失。先配好 `SIGN_IDENTITY` 环境变量(真实证书或 ad-hoc),然后跑 `scripts/package-mac-app.sh`;最容易踩的坑是 ad-hoc 签名会禁用 Hardened Runtime,导致 Sparkle 等框架崩溃,而且权限不会持久化。

先讲这一页到底在解决什么

macOS 签名:让权限记住你,别每次重编都弹窗

这页讲的是如何给 macOS 调试构建签名,核心目的是让 TCC 权限(通知、录屏、麦克风等)在每次重编后不丢失。先配好 `SIGN_IDENTITY` 环境变量(真实证书或 ad-hoc),然后跑 `scripts/package-mac-app.sh`;最容易踩的坑是 ad-hoc 签名会禁用 Hardened Runtime,导致 Sparkle 等框架崩溃,而且权限不会持久化。

原文共 6 节,先看 Start Here 路径:/platforms/mac/signing 查看官方原文

第一站

🪪 package 脚本做的不是单纯打包,而是在尽量维持“我是同一个 app”这件事

所以它会固定 bundle id、写入构建信息、再跑签名和 Team ID 检查。

scripts/package-mac-app.sh

像一条总装线,负责编译、填信息、签名、做一致性检查。

SIGN_IDENTITY

这像告诉流水线“今天请哪位证书老师来盖章”。

Developer ID / Apple Development

真实证书像正式身份证,权限记忆更稳。

Ad-hoc

像临时手写胸牌,能进门,但不适合做长期权限测试。