对 Mac App 打包后,我们可以选择通过 Developer ID
方式直接向我们的客户分发 Mac App 而不用将 App 传到 Mac App Store。
在这个过程中遇到了一些坑,故总结分享一下。
Developer ID 证书
创建
首先我们需要创建 Developer ID 证书,具体如何创建可以看苹果的这个 文档: 创建 Developer ID 证书。
但是这里有个需要很注意的问题:使用开发者帐户或 Xcode 可以创建 最多五个
Developer ID App 证书。
撤销
撤销删除 Developer ID App 证书 并不是随意操作的,不管你的苹果开发者账号的角色是什么,需通过 product-security@apple.com
向 Apple 发送请求,才可以删除。
而且注意,如果您撤销了 Developer ID 证书,用户便无法安装使用该证书签名的 app。
更详细的撤销证书权限可以看这个 文档: 撤销权限
所以这里需要注意保管好 Developer ID 证书的私钥。我就试过换了电脑后,本地证书没有私钥的尴尬情况,就是常见的 Missing Private key
错误,如果你的 Developer ID 证书数量刚好达到了上限,无法创建新的证书,又丢失了旧的证书的私钥的话,这个情况就只能通过 product-security@apple.com
向 Apple 发送请求撤销旧的证书,再创建新的了。所以这里建议可以事先在 KeyChain Access.app 里导出 p12 文件做好保管。
Notarization 苹果公证
从 macOS 10.14.5
之后,通过 Developer ID 证书分发的 App,苹果建议都需要通过苹果的公证(Notarized),以代表这个 App 不含有恶意内容,否则的话每次用户初次打开你的 App 的时候都会有 无法检查是否包含恶意软件
的安全提示,类似如下图:
这时候需要去到系统设置的安全与隐私那里,选择仍要打开:
这时候还会有个安全提示,但是这次是有 打开
选项的:
这一顿操作下来其实对用户的体验很不友好,让人产生对 App 的不信任感。
所以这里还是建议大家把 App 上传给苹果进行公证。如下图在打包的时候可以选择 Upload
给苹果进行 Notarize
关于 Notarization 这块更详细的内容,可以查看这个 文档: Notarizing macOS Software Before Distribution
欢迎关注我的个人公众号:HansonTalk,分享点有意思的。