了解 iOS 开发证书

Understanding iOS Development certificates

我们收到来自 Apple 的电子邮件:您的 iOS 开发证书已被吊销。

SO 上有关于如何恢复您的证书的答案 (1, ),但我还有一些其他问题

  1. 为什么它被撤销了?我所做的是尝试在我的 iPhone 上 运行 我们的应用程序。这是我第二次这样做 - 这次是在新 MacBook 上到新 iPhone。这是触发电子邮件的问题吗?
  2. 这封邮件有什么意义?我仍然可以 运行 在同一个 iPhone 上使用该应用程序。卸载它并重新安装它并且它工作正常。真的有问题吗?

我认为发生的事情是,当您从新的 Macbook 运行 那里下载新证书时,Apple 撤销了您当前的证书并制作了一个新证书。我工作的地方发生过这样的事情。

  1. 可能您没有将开发证书导入您的新 Macbook。因此,当您使用 Xcode 运行 应用到 phone 时,Xcode 将检测到签名身份问题。来自 developer site:

If Xcode detects an issue with a signing identity, it displays an appropriate action in Accounts preferences. If Xcode displays a Create button, the signing identity doesn’t exist in your developer account or on your Mac. If Xcode displays a Reset button, the signing identity is not usable on your Mac—for example, it is missing the private key. If you click the Reset button, Xcode revokes and re-creates the corresponding certificate.

所以,也许Xcode吊销证书。

  1. 因为您的新 Macbook 上有新证书,所以您仍然可以 运行 您的应用程序。但是当你在你的旧 Macbook 上工作时,你旧 Macbook 上的证书已被吊销,Xcode 无法将你的应用程序编译为 运行 在你的 phone.

创建新证书后,您需要从Xcode->首选项->帐户->您的AppleID->查看详细信息->右键单击证书->导出。

然后您可以在新的 Macbook 上导入它而无需撤销它并创建一个新的。

每个证书都是通常的一对私钥和 public 密钥。当你生成一个新证书时,实际上你在你的机器上保存了一个私钥,并将 public 密钥的一部分发送给 Apple。然后 Apple 自己生成一个密钥,并作为结果发送给你一个 public 密钥(参见 Diffie–Hellman 密钥交换)。

如果您更换了一台机器并且现在在您的新机器上没有私钥,Xcode 将无法使用您的证书签署您的应用程序。因为您只能从开发人员门户下载 public 密钥。因此,如果您使用 "Automatic manage signing" Xcode 决定重新创建证书,因为它找不到私钥。对于私人团队和 iOS 开发人员计划,所有这些过程都是相同的。您可以在尝试签名之前从您的旧机器导出带有私钥的旧证书,这样您就不需要撤销旧证书。

至于电子邮件,Apple 只是通知您您的旧证书已被吊销,现在不能用于签署应用程序。就像写的一样。它可能因为已经过期而被撤销,或者其他人已经撤销了它(例如是你)。因此,为了让您了解情况,Apple 向您发送了这样一封电子邮件。