为啥我不能对这个 Mac 应用程序进行代码签名?

Posted

技术标签:

【中文标题】为啥我不能对这个 Mac 应用程序进行代码签名?【英文标题】:Why can't I code sign this Mac app?为什么我不能对这个 Mac 应用程序进行代码签名? 【发布时间】:2011-07-30 15:07:21 【问题描述】:

几天前,我开始为 Mac OS X Lion 开发一个小型 Mac 应用程序。我以前从未上传过 Mac 应用,所以这是第一次。

这是我已经做过的:

创建的应用 ID 已创建证书 已安装证书 创建了生产配置文件 将 App ID 更改为我生成的一个 基于“发布”创建了新配置 将其代码签名更改为第 3 方 Mac 开发者应用程序 选择了我为存档方案创建的“生产”-配置 归档应用程序

现在我想“共享”应用程序。 Xcode (4.1 btw) 对我说,没有有效的签名身份。我是否需要像在 ios 中一样添加 Entitlement.plist?我是不是忘记了什么?


更新:

我刚刚发现,我必须对我的应用程序进行两次签名。我仍然选择了“3rd Party Mac Developer Application”,但在提交我的应用程序时无法选择安装程序证书。

【问题讨论】:

【参考方案1】:

您是否安装了 WWDR 中间证书?我只是遇到了完全相同的问题,我的问题是我的机器上没有安装中间证书。当然,Apple 没有明确表示您需要安装它,更像是建议。但是,你确实需要它。您可以找到它here,或前往 Mac 开发者中心下的开发者证书实用程序。

【讨论】:

顺便说一句,如果是这个问题,你需要在安装完中间证书后重启Xcode,这样Xcode才能识别它。 谢谢,但我已经在 App Store 上安装了一些 iOS 应用程序,并且 WWDR 证书是相同的。问题一定出在其他地方。【参考方案2】:

我让它工作了。我删除了我的应用并创建了新应用。

我没有创建新的配置,只是将目标的代码签名身份更改为 3rd Party Mac Developer Application。在此之后,我将应用程序存档,然后我能够选择安装程序证书。

【讨论】:

在配置中,我有正确的代码签名,但是当我归档我的应用程序并想要共享它时,我只能选择身份不签名...这也是你的问题吗? 是的,我现在想通了,我需要 2 个证书...一个用于签署应用程序,一个用于签署包

以上是关于为啥我不能对这个 Mac 应用程序进行代码签名?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xcode5 在 Mac 应用程序中对捆绑的可执行文件进行代码签名

为啥要使用环境变量对 JSON Web 令牌 (JWT) 进行签名?

Mac 应用程序 |代码签名 |不通过 Mac App Store 分发 [关闭]

对 Mac OS X 应用程序进行代码签名以进行 Ad-Hoc Beta 分发(使用 HockeyApp)

您是不是需要访问目标操作系统才能对电子应用程序进行代码签名

Mac App Store 权利 - 代码对象根本没有签名