返回知识库

桌面软件 · 打包与分发

打包与签名公证Code Signing & Notarization

没签名的安装包会被 macOS Gatekeeper 和 Windows SmartScreen 拦下;Windows 要签名,Mac 要签名 + 公证,证书花钱花时间,要提前排进上线计划。

先发包:朋友双击后,屏幕上弹出什么

笔记应用 v1.0 打好包了。在流水线上勾签名、公证,再发给 macOS 或 Windows 的朋友——他屏幕上弹出的框,就是你的验收结果。

  1. ① 打包笔记-1.0.dmg 已生成
  2. Developer ID 证书 · 苹果开发者账号 $99/年
  3. 要先签名才能公证

朋友的电脑:还没收到安装包

勾好流水线,再点「发给朋友,双击打开」。

知识点:签名回答「谁发的、有没有被改过」

朋友屏幕上的框已经演过,这里只做命名。

  • 没签名的安装包,macOS 的 Gatekeeper 和 Windows 的 SmartScreen 都会拦;普通用户看到就放弃了。
  • macOS 要两步:用 Developer ID 证书签名,再提交 Apple 公证;只签名不公证照样被拦。
  • Windows 签名后显示发布者名称;新证书下载量少时仍可能提示,信誉要慢慢积累。
  • 证书要花钱(苹果每年 $99,Windows 证书每年几百美元起)、申请要几天——提前排进计划,证书只放在 CI 密钥里。

什么时候用、怎么用

只要安装包要离开你自己的电脑,就要签。

  • 信号:要发给同事、客户或放到官网下载。自己电脑上能打开不算数——本机构建的包不带「从网上下载」标记。
  • 不适用:只上架 Mac App Store / Microsoft Store 时,商店流程会处理签名,但仍要开发者账号。
  1. 先办开发者账号和证书(这一步最慢),再让 AI 在打包配置里接上签名和公证。
  2. 证书和密码放进 CI 的密钥,不进仓库。
  3. 验收:在一台干净的 Mac 和 Windows 上,从浏览器下载开始,双击打开一次。

正反例:同一个 v1.0 安装包

代码一样,差别只在发出去之前有没有签名公证。

正例签名 + 公证后再发

朋友双击只看到一次「从互联网下载,确定打开?」,点「打开」就用上了。

反例直接发 dmg,附一句「右键打开」

大部分人看到「无法验证」就删了;就算教会了绕过,也是在教用户忽略安全警告。

快速自测

AI 报告:「macOS 安装包已用 Developer ID 签名,在我这台 Mac 上能正常打开。」可以直接发给用户吗?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。