2011-04-17 90 views
4

我有一个非常烦人的代码问题:我有2台Mac机器(M1,M2)和2个开发人员证书(C1,C2)。虽然钥匙扣看待M1和M2类似,我有协同设计结果如下:codesign failed with CSSM_SignData returned:8001094A

  • 协同设计(M1,C1)确定
  • 协同设计(M1,C2)NOK
  • 协同设计(M2,C1)NOK
  • 协同设计(M2,C2)确定

所以,当我成功打造我的M1项目,C1,我不能仓库转移到M2与C1再建,我必须改变,以C2是成功的。 错误codesign返回错误消息'CSSM_SignData返回:8001094A'后跟'未知错误-2070 = fffff7ea'。

+0

你有没有解决这个问题?我看到完全相同的错误代码。以下关于只从一台机器签名的答案完全是错误的。这通常起作用,但它现在刚开始抛出这个错误。 – rennarda 2013-01-22 15:06:22

回答

1

要在计算机上签名您的应用程序,必须仅从该计算机请求证书。所以你不能用C1在M2上构建,反之亦然。

不幸的是,这个信息进入project.pbxproj,这是至关重要的,必须由版本控制来维护。我不认为有任何方法可以避免在版本控制中添加这种机器特定的信息。

但是,当您选择要签署的证书时,有一个“自动配置文件选择器”选项。我还没有在单独的机器上测试过它,但它听起来像会自动为正确的机器选择正确的证书。但如果不是这种情况,那么你将不得不每次都手动选择certi。

我的团队这样做的方式是 - 我们为开发人员提供不同的mac,并且我们通过一个特定的mac做所有我们的签名。

+0

这听起来很合理,并且“自动轮廓选择器”似乎起作用。非常感谢你! – 2011-04-17 16:20:15

0

您可以以.p12格式从keychain中导出证书并将它们安装在另一个系统上。如果您将.cer文件安装在不同的机器上,它将无法使用!尝试导出它们并在其他系统上安装。

相关问题