通过查看即将推出的OSX版本(OSX Lion之后的版本)的注释,似乎所有DMG /安装程序都需要签名,即使没有通过Mac App Store分发 .
我找不到一个命令行工具来执行此签名,或者有很多关于获取签名证书而不提交到App Store的文档 .
有人可以说明:1)如何在不通过Mac App Store分发应用程序的情况下获取证书? 2)如何在不使用内置XCode工具的情况下签署DMG(最好是跨平台工具)?
谢谢!
代码签名详细描述here和here - 基本上您需要获得证书然后您可以签署您的申请... AFAIK目前没有关于签署DMG本身的官方文档 . 至于你的第二个问题(跨平台签名),没有这样的工具可用(至少没有一个是Apple官方支持的) . 至于有关未来OS X版本的信息,我强烈建议询问正确的Apple-Forums(通常还有与NDA相关的论坛) .
这非常简单:
CODESIGN_IDENTITY='Name of Code Sign Cert' # Found in Keychain Access codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.app
然后在dmg上:
codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.dmg
这甚至适用于像UDZO这样的只读DMG .
签署磁盘映像(来源:Apple)
可以使用macOS 10.11.5及更高版本上的codesign工具对磁盘映像进行签名 . 这允许Gatekeeper在第一次安装时验证整个磁盘映像 .
Gatekeeper也将验证磁盘映像的内容 .
磁盘映像只能使用您的开发者ID应用程序标识进行签名 .
在macOS Sierra和更高版本上, spctl 可用于评估磁盘映像的签名,如下所示:
spctl
$ spctl -a -t open --context context:primary-signature -v MyImage.dmg /Users/me/Downloads/MyImage.dmg:accepted source = Developer ID
注意:在OS X 10.11.5或10.11.6上签名的磁盘映像可能无法重新签名 . 在这种情况下,操作似乎成功,但签名将无效 . 如果遇到此情况,请在macOS Sierra或更高版本上签署新的(未签名)图像副本 .
3 回答
代码签名详细描述here和here - 基本上您需要获得证书然后您可以签署您的申请... AFAIK目前没有关于签署DMG本身的官方文档 . 至于你的第二个问题(跨平台签名),没有这样的工具可用(至少没有一个是Apple官方支持的) . 至于有关未来OS X版本的信息,我强烈建议询问正确的Apple-Forums(通常还有与NDA相关的论坛) .
这非常简单:
然后在dmg上:
这甚至适用于像UDZO这样的只读DMG .
签署磁盘映像(来源:Apple)
可以使用macOS 10.11.5及更高版本上的codesign工具对磁盘映像进行签名 . 这允许Gatekeeper在第一次安装时验证整个磁盘映像 .
Gatekeeper也将验证磁盘映像的内容 .
磁盘映像只能使用您的开发者ID应用程序标识进行签名 .
在macOS Sierra和更高版本上,
spctl
可用于评估磁盘映像的签名,如下所示:注意:在OS X 10.11.5或10.11.6上签名的磁盘映像可能无法重新签名 . 在这种情况下,操作似乎成功,但签名将无效 . 如果遇到此情况,请在macOS Sierra或更高版本上签署新的(未签名)图像副本 .