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 等框架崩溃,而且权限不会持久化。
第一站
🪪 package 脚本做的不是单纯打包,而是在尽量维持“我是同一个 app”这件事
所以它会固定 bundle id、写入构建信息、再跑签名和 Team ID 检查。
scripts/package-mac-app.sh像一条总装线,负责编译、填信息、签名、做一致性检查。
SIGN_IDENTITY这像告诉流水线“今天请哪位证书老师来盖章”。
Developer ID / Apple Development
真实证书像正式身份证,权限记忆更稳。
Ad-hoc
像临时手写胸牌,能进门,但不适合做长期权限测试。