ios - 证书身份 'iPhone Developer: ' 在钥匙串(keychain)中多次出现。协同设计工具只需要一个

标签 ios objective-c xcode provisioning-profile

好的,我完全把头发拉出来了。

早在 7 月,我就创建了一个配置文件,以便在我的 iPad 上进行测试。

然后在 8 月底,我尝试将我的第一个应用程序提交到 iTunes Store。这个过程完全是一场噩梦,我很挣扎。很多。最后我找到了一个教程,里面有相对较新的信息,只有一步一步地跟着它,我才能真正做到这一点。不幸的是,结果是我创建了一个新的配置文件。

现在,当我尝试在 iPad 上进行测试时,我在 Xcode 中收到以下错误:

Certificate identity 'iPhone Developer: MyName' appears more than once in the keychain. The codesign tool requires there only be one.

我检查了钥匙串(keychain),果然有两个用于开发的配置文件,一个来自 7 月份,另一个是我在 8 月份提交给 iTunes Store 的。

现在我想做的是摆脱旧的,然后将我的 iPad 连接到新的。我可以很好地摆脱旧的,但我无法将我的 iPad 连接到新的,它坚持使用旧的配置文件,甚至在我删除它后将它重新附加到钥匙串(keychain)上。

谁能告诉我:

如何将我的 iPad 连接到新的配置文件?

当我们在做的时候,谁能解释为什么整个过程如此复杂和困难?考虑到 Apple 的大部分界面设计得如此出色和流畅,注册证书并将其应用于不同设备和应用程序的过程似乎如此落后。我最初怀疑这只是我,但谷歌搜索这些错误消息显示有许多人在这个过程中的各个方面都在挣扎。

最佳答案

这与 Xcode 无关,与钥匙串(keychain)无关。

  • 打开钥匙串(keychain)。
  • 查找与您的配置文件绑定(bind)的签名证书。
  • 删除一个。您可能希望保留较新的,因此请查看到期日期并删除第一个到期的日期。
  • 重启Xcode

  • 如果您的配置文件未绑定(bind)到新证书,您可能需要更新它,但它不会像创建新证书那样痛苦。

    下面是 Xcode 中代码签名如何工作的广泛概述。它有点多,但会解释您的配置有什么问题,以及如何修复它。
  • 该机制由三个部分组成,可确保您是您所说的自己,并且允许您的应用程序在它想要​​的地方运行。
  • 你有一对 key ,一公一私。您的公钥与您的私钥匹配,后者可识别您的身份。
  • 您的 key 用于生成证书 .通常,您将拥有一份开发证书和一份分发证书,无论是在 App Store 上还是通过 Ad Hoc 分发。这些证书允许您配置您的应用程序。
  • 每个证书 用于生成配置文件 .配置文件必须附加到开发或分发认证。分发配置文件可以在 App Store 上运行,或者它包含可以运行使用该配置文件签名的应用程序的设备 ID 列表。
  • 如果您的证书已过期,则使用它创建的配置文件将无效。在这种情况下,请同时替换证书和配置文件。从 Keychain Access 生成证书签名请求 (CSR) 并将其上传到开发人员门户。
  • 如果您的钥匙串(keychain)中有多个证书 , Xcode 不知道该使用哪一个。如果您更新证书并且不删除旧证书,则可能会发生这种情况。 (如果您导出了您的开发人员配置文件,然后稍后再导入它,也可能会发生这种情况。您的旧证书将被保留。)
  • 如果您的配置文件已过期或无效,您可以在开发人员门户中更新它,而无需生成新的 CSR。您可以将其附加到现有的有效证书上。

  • 如果不移动请求它的原始 key 对,证书就不能从一台机器转移到另一台机器。从 Keychain 导出证书也将导出 key 。

    关于ios - 证书身份 'iPhone Developer: ' 在钥匙串(keychain)中多次出现。协同设计工具只需要一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18572208/

    相关文章:

    ios - 共享按钮作为 UITabBarController 上的选项卡栏项目,没有关联的 Controller

    ios - UITableViewCell 内的 UIView 上的 UIGestureRecognizer

    ios - 将 UICollectionView 的内容转换为图像

    ios - 如何在 UIView 上设置 UIPanGestureRecognizer 区域的限制?

    iphone - 检测iphone 5 4"屏幕

    iOS:链接错误而反对静态库,即使我没有引用该库中的任何代码

    ios - 如何封装 UIViewController?

    ios - Facebook iOS 共享对话框崩溃

    objective-c - 如何继承 UIScrollView 并将委托(delegate)属性设为私有(private)

    ios - Xcode 11.1 未安装经过更改的新版本(iOS 13.1.2)