macOS 手动对pkg ,dmg安装包签名、公证流程

2,608 阅读2分钟

Macos 手动对pkg ,dmg安装包签名、公证流程

1.签名

提前准备好 Developer ID Installer p12 证书,安装在Mac 上,用于安装包签名

命令行输入 security find-identity -v 查找Mac 上所有证书

image.png


productsign --sign "Developer ID Installer: xxxxxx. (xxxxxx)" xxx.pkg signed.pkg

image.png

2.公证

macOS 包括一种称为 Gatekeeper 的技术,它有助于确保只有受信任的软件在 Mac 上运行。 当用户下载并打开安装程序包或应用时,Gatekeeper 会验证软件是否来自已识别的开发人员。 它通过检查开发人员 ID 证书,并检查软件是否由 Apple 公证为没有已知的恶意内容且未被更改来执行此操作。 因此,在预配和发布应用后,应将其提交到 Apple 进行公证。 Apple 的公证服务会自动扫描开发人员 ID 签名的应用并执行安全检查。 公证成功后,会为你的软件分配一个票证,让 Gatekeeper 知道它已经过公证。

可以使用命令行工具notarytool 将应用提交到 Apple 的公证服务 


xcrun notarytool submit signed.pkg --wait --apple-id **xxxxx@gmail.com** --password **oowr-cnmj-sexr-igpt** --team-id xxxxxx

image.png

apple-id 苹果开发者账户名

password 应用程序专用密码(不是您的 Apple ID 密码,每次打包之前需要重新生成,公证完成密码即失效

image.png

team-id 团队ID,要获取此 ID,请转到您的Apple 开发者帐户,然后单击“会员详细信息”,您将在其中找到您的团队 ID。此链接应该可以直接让您到达那里:https ://developer.apple.com/account#MembershipDetailsCard

3.盖章将票证装订到应用

公证成功后,应使用 stapler 工具将票证附加到应用。 这可确保即使网络连接不可用,Gatekeeper 也能找到票证。 运行以下命令,将票证附加到pkg安装包


xcrun stapler staple signed.pkg

该工具 stapler 检索票证并将其附加到安装程序包。 如果装订成功,你将收到一条消息,告知你装订和验证操作有效。

image.png

4.验证pkg 是否公证成功


spctl -a -v --type install signed.pkg

pkg 公证成功结果如下如图 image.png

公证成功 
signed.pkg: accepted source=Notarized Developer ID 

没公证的 
signed.pkg: rejected source=Unnotarized Developer ID