4

我有一个非常烦人的代码设计问题:我有 2 台 Mac 机器(M1、M2)和 2 个开发人员证书(C1、C2)。虽然钥匙串在 M1 和 M2 上看起来很相似,但我通过代码设计得到了以下结果:

  • 代码设计(M1,C1)好的
  • 代码设计(M1, C2) nok
  • 代码设计(M2, C1) nok
  • 代码设计(M2,C2)好的

因此,当我使用 C1 在 M1 上成功构建项目时,我无法将存储库转移到 M2 并使用 C1 再次构建,我必须更改为 C2 才能成功。在错误代码设计返回错误消息“CSSM_SignData 返回:8001094A”后跟“未知错误 -2070=fffff7ea”。

4

2 回答 2

1

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

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

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

我的团队这样做的方式是——我们为开发人员提供不同的 Mac,我们从一个特定的 Mac 上完成所有签名工作。

于 2011-04-17T10:35:15.170 回答
0

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

于 2011-04-17T11:05:22.247 回答