【问题标题】:Understanding iOS Development certificates了解 iOS 开发证书
【发布时间】:2017-03-05 01:45:29
【问题描述】:
我们收到了来自 Apple 的电子邮件:您的 iOS 开发证书已被吊销。
关于如何恢复您的证书(1、2)有关于 SO 的答案,但我还有一些其他问题
- 为什么会被撤销?我所做的是尝试在我的 iPhone 上运行我们的应用程序。我第二次这样做了——这次是在新的 MacBook 到新的 iPhone 上。这是触发电子邮件的问题吗?
- 这封电子邮件有什么意义?我仍然可以在同一部 iPhone 上运行该应用程序。卸载它并重新安装它,它工作正常。真的有问题吗?
【问题讨论】:
标签:
ios
certificate
app-store
code-signing
【解决方案1】:
每个证书只是通常的一对私钥和公钥。当你生成一个新证书时,实际上你在你的机器上保存了一个私钥,并将一部分公钥发送给 Apple。然后 Apple 自己生成一个密钥,并将一个公钥作为结果发送给您(请参阅 Diffie-Hellman 密钥交换)。
如果您更换了一台机器并且现在在您的新机器上没有私钥,Xcode 将无法使用您的证书对您的应用程序进行签名。因为您只能从开发者门户下载公钥。因此,如果您使用“自动管理签名”,Xcode 决定重新创建证书,因为它找不到私钥。对于私人团队和 iOS 开发人员计划,所有这些过程都是相同的。您可以在尝试签名之前从旧机器上导出带有私钥的旧证书,这样您就不需要撤销旧证书。
至于电子邮件,Apple 只是通知您您的旧证书已被吊销,现在不能用于签署应用程序。就像写的一样。它可能因为已过期而被撤销,或者其他人已经撤销了它(例如是你)。因此,为了让您了解最新情况,Apple 向您发送了这样的电子邮件。
【解决方案2】:
我认为发生的情况是,当您从新的 Macbook 运行它时,您在那里下载了新证书,当您这样做时,Apple 撤销了您当前的证书并制作了一个新证书。我们在我工作的地方发生过类似的事情。
【解决方案3】:
- 也许您没有将开发证书导入新的 Macbook。因此,当您使用 Xcode 在手机上运行应用程序时,Xcode 会检测到签名身份的问题。来自developer site:
如果 Xcode 检测到签名身份存在问题,它会在 Accounts 首选项中显示适当的操作。如果 Xcode 显示“创建”按钮,则您的开发者帐户或 Mac 上不存在签名身份。如果 Xcode 显示重置按钮,则签名身份在您的 Mac 上不可用 - 例如,它缺少私钥。如果单击 Reset 按钮,Xcode 会撤销并重新创建相应的证书。
所以,也许 Xcode 会撤销证书。
- 因为您的新 Macbook 上有一个新证书,所以您仍然可以运行您的应用程序。但是当您在旧 Macbook 上工作时,旧 Macbook 上的证书已被吊销,Xcode 无法编译您的应用以在您的手机上运行。
创建新证书后,您需要从 Xcode-> Preferences->Accounts->YourAppleID->ViewDetails->右键单击证书->导出。
然后您可以将其导入新的 Macbook 而无需撤销它并创建一个新的。