Xcode 8.3.x 在同一台计算机的不同分区上的证书和配置文件

Certificates and Provisioning Profiles with Xcode 8.3.x on Separate Partitions of the Same Computer

我在同一台计算机上有多个分区。他们每个人都安装了不同的 macOS 版本。直到一周前,我还在 El Capitan 下开发桌面和 iOS 应用程序。然后我决定完全切换到 Sierra。现在,我想对在 Sierra 分区下维护的新旧应用程序进行代码签名并发送到 App Store。为此,我需要访问配置文件。

新分区的问题是我不再看到配置文件列表。如果我打开 Xcode 的帐户,我将不再有查看详细信息按钮。相反,我有管理证书按钮。单击它,我会看到一个开发和分发证书列表,而不是配置文件列表,这告诉我 Xcode 对使用哪组证书感到困惑。我为新分区安装了一对证书(日期为 2017/06/19)。但我想 Xcode 仍然很困惑。我无法将证书从旧分区带到新分区。如果我这样做,面板会显示证书没有私钥。我可以回到旧分区以使用配置文件。那么如何访问新分区下的配置文件呢?撤销旧分区上的现有证书是唯一的解决方案吗?谢谢

您可以从旧分区上的钥匙串导出旧证书及其私钥。进入 Keychain Access,在 "My Certificates" 和 select File->Export Items... 下找到 iOS Development 和 iOS Distribution 证书私钥作为 .p12 文件。然后将 .p12 文件放入新分区(电子邮件、USB 驱动器、直接复制)并将其导入到新分区上的钥匙串中。

另一个选项是切换到 Xcode 8 的自动代码签名。这将允许 Xcode 在登录您的开发者帐户时创建所有必要的代码签名资产。以前,Apple 只允许您在任何时候拥有每种类型的 2 个证书,这在让 Xcode 管理证书时会导致问题,因为在新的 Mac(或新安装的 Mac 上创建证书] OS X) 通常会使旧 Mac 上的证书无效。现在,Apple 让您拥有多个证书,因此通过自动代码签名,每个新 Mac(或 Mac OS 的每个实例)都可以拥有自己的证书和配置文件。如果您不再需要使用 Xcode 7,我会尝试开始使用自动代码签名。您可以找到更多相关信息 here