我无法理解如何将我的Mac应用程序打包到安装程序(.pkg
)并签名以便在App Store(例如我自己的网站)外部进行分发。
Xcode 6的管理器/存档窗口为您提供了四种导出Mac应用程序存档的选项:
导出开发者ID签名的应用程序 - 签名身份:开发者ID申请:(< 10位十六进制数>)
保存Mac App Store部署 - 签名身份:第三方Mac开发人员应用程序(< 10位十六进制数>)
导出为Mac安装程序包签名身份:第三方Mac开发人员应用程序(< 10位十六进制数>)
导出为Mac应用程序 - (立即提示保存位置)
请注意,除导出安装程序包之外的选项如何不使用“第三方Mac开发人员安装程序”身份(我的钥匙串中也有该证书),但“第三方Mac开发人员< strong>申请“签名身份。这是为什么?也许在这里签名的是安装程序中包含的应用程序,我仍然需要签署包本身? (顺便说一句,我试过这个但是在通过电子邮件将pkg发送给自己之后,但是双击它会产生可怕的“无法打开,因为它来自一个身份不明的开发者”警告)
Apple的文档有点简洁,涵盖了很多方面(签名包,可执行文件,框架等),并且似乎以命令行工具codesign
和productsign
为中心; S.O.的相关问题也是如此。那么,上面列出的Organizer出口选项#3的目的是什么呢?我可以用吗?我应该使用命令行构建软件包,还是可以利用此Xcode / GUI工具并在之后签署导出的.pkg
? (我猜是使用命令行)。
为什么Xcode“无法正常工作”,并且一次性打包/签署应用/包?我的安装程序不需要任何奇特的逻辑或列出任何支持文件/目录结构;它只是我.app
周围的“包装”。
ADDENDUM:我尝试从Organizer导出.app
捆绑包,签名为“开发者ID应用程序”(上面的选项#1),使用旧的PackageMaker.app打包,并且使用命令行进行签名。但我仍然收到“未知开发人员”错误,并且在隔离后无法打开安装程序。
答案 0 :(得分:2)
使用以下方法进行快速测试:
spctl --assess --type install <packagename>.pkg
给出:
<packagename>.pkg: rejected
...这意味着我没有正确签名包以作为安装程序运行。
修复身份名称后,使用以下方式签署.pkg
文件(使用PackageMaker或Xcode构建):
productsign --sign "Developer ID Installer <MyName>" ./Unsigned.pkg ./Signed.pkg
,spctl
命令运行无声(没有反馈 - 成功?),如果我通过电子邮件将结果包发送给自己并下载它们(隔离区),安装程序将启动并安装应用程序没有问题。
编辑:我会等几天才接受我自己的答案,以防有人分享进一步的知识。提示。