Xcode“未在此Mac上安装私钥 - 分发”

100

每当我试图将应用程序提交到应用商店时,总是收到此消息。

下面是这条消息的图片:

picture

如果有人能帮助我解决这个问题,这将是非常好的,这样我就可以向商店提交我的应用程序了。

21个回答

92

尝试按照以下步骤操作:

  1. 从iOS开发者网站中撤销您现有的iOS分发证书。
  2. 通过进入XCode首选项→帐户→查看详细信息,然后在签名标识列表下方单击+,生成新的iOS分发证书。
  3. 返回到开发者网站,并确保所有您的配置文件都使用新证书进行配置。(完成后它们应全部显示为活动状态。)
  4. 回到XCode并刷新您的配置文件列表。

我遇到了与您相同的问题,这个方法解决了它。


我遇到了同样的问题,上面提出的步骤修复了它,但是现在在验证应用程序时,我又遇到了另一个问题:“束是无效的,提交到应用商店的新应用和更新必须是公开的”。有人可以帮忙吗? - Maystro
很多人已经问过这个问题:http://stackoverflow.com/search?q=the+bundle+is+invalid+new+apps+and+updates+submitted+to+the+app+store+must+be+public - Ben Visness
@Fabian Boulegue,我认为投票结果表明这是最佳答案。如果您能将其标记为已接受,那就太好了 :) - Ben Visness

50

这对我很有帮助,可以避免从头开始:
1. 在用于生成私钥的机器上打开钥匙串访问
2. 在左侧选择Keychains->Login和Category->Certificates
3. 找到两个证书: iPhone Developer: [你的开发者名称] 和 iPhone Distribution: [你的开发者名称]
4. 选中两个证书,右键点击并选择“导出2项...”
5. 输入一个密码,保存文件到磁盘并将.p12文件传输到无法签名的另一台机器上
6. 打开该文件,输入密码,然后您就可以继续了。


8
如果我不再能够访问生成私钥的计算机,那该怎么办? - aaronsnoswell
2
@aaronssnowell 你需要为你当前正在使用的机器生成新的密钥。 - Nik
然后你必须生成一个新的。 - ABCD
将私钥导入我的密钥链后,它仍然对我无效。不过,简单的重启让它工作了... ;) - fredpi
  1. 重启机器。看起来除非我重新启动,否则它似乎没有在钥匙串中看到新的私钥。我猜这是因为你将它添加到登录钥匙串中,必须在登录时加载?
- TenaciousJay

18

我也遇到了相似的问题,在经过数天的测试、检查和尝试修复后,我发现解决方法很简单:

  1. 打开 Xcode 的偏好设置(帐户面板)
  2. 点击“管理证书”
  3. 添加新证书

然后一切都重新开始正常工作了。

这是一个图片描述


12

我也遇到过这个问题,为此花费了4个小时的时间来解决。最终,我采取了以下措施:

  1. 删除我的Keychain Access中所有的私钥、公钥和证书。
  2. 删除所有Provisioning profiles。
  3. 删除所有AppID(可能不需要这样做,但我想要一个干净的开始)。
  4. 在Developer.Apple网站上删除了我的证书。
  5. 创建了新的Wildcard Development Profile。
  6. 针对我要部署的特定应用程序创建了新的Profile(因此它具有应用程序名称而不是 * 在AppID中)。
  7. 从网站创建了新的开发证书。
  8. 下载了中间证书(Worldwide Developer Relations Certificate Authority),因为我也将其从我的Keychain中删除了。
  9. 创建了Certification Signing Request(CSR),按照说明仔细地将它添加到我的Keychain access中,并上传了CSR。
  10. 添加了认证后,我确保重命名了公钥和私钥,并在信息框中添加了注释,以便记住我所做的事情。
  11. 通过重复步骤7、9、10创建了新的Distribution Cert,以便将它放到App Store中。

希望能帮助其他人知道可以清除所有内容并重新开始。我将所有证书加载到了一台上周开始出问题的旧Macbook Pro上。所以我上周买了一台新的Mac Air,但我记不得有哪些密钥,我肯定也不记得我有两套私钥和公钥,一套用于开发,另一套用于分销。(如果您有多个分销版本,则可能会有额外的几套)。

Steve


我记得在XCode 4中成功地完成了这个过程。你知道如何在XCode 5中删除所有的配置文件(第二步)吗? - Danny
1
在任何人执行“删除”步骤1-4之前,建议尝试通过KeychainAccess导出证书,如下面的评论中所述,然后在目标机器上导入它们。 - andrewz
5
什么解决方案。那我也需要买一台新笔记本电脑吗? - breakline

5

值得检查 Keychain Access,确保您没有多个同名的密钥。而且,当我遇到代码签名问题时,最快的解决方案往往是重新开始过程(创建新的密钥对、证书和配置文件)。

祝你好运!


5

我也遇到了同样的问题,一开始在骂苹果,后来发现是我的错。

1.- Go to developer.apple.com / Certificates / Production
2.- Download your certificate

在尝试其他答案后,这对我有用。


已下载证书并添加到钥匙串访问中,但仍无法正常工作。 - famfamfam

4

前往“偏好设置” -> “账户” -> 选择正在使用的Apple ID -> 点击“查看详细信息…”按钮 -> 然后点击加号并选择“iOS分发”按钮。更多详情请点击此处


3

看起来你已经成功生成了分发证书,因此你一定在之前生成过密钥对。你是否在多台机器上开发?如果是,请从拥有该证书的机器中导出开发者配置文件,并将其导入到这台机器中。


我相信你也可以从省门户网站下载它。 - El Guapo
6
不,你不能从预配门户下载私钥。它是私有的。你不会将其提供给苹果。 - Jim
在哪里? 我就是找不到它 :/ - Fabian Boulegue
2
证书是苹果给你的一个文件,上面写着“是的,这个私钥已经得到了苹果的认可”。而私钥本身是独立的。如果你在那台电脑上没有这个私钥,那么旁边就会有一个披露箭头。证书存在的前提是你曾经拥有过这个私钥。如果你不使用其他电脑,并且你的电脑上也没有安装不同账户的私钥,那么你可能已经删除了它。 - Jim
2
如果您没有私钥并且无法从备份中恢复它,那么您将需要生成一个新的密钥对,为其生成CSR,将CSR上传到苹果,下载苹果响应生成的新证书,创建一个新的分发配置文件,并使用该配置文件构建您的应用程序。基本上,按照苹果在开始时给出的设置说明进行操作。 - Jim
显示剩余3条评论

2

我的问题是Xcode没有出现在私钥的访问控制列表中。您可以在密钥链访问中修复此问题,而无需生成新的密钥对。

打开密钥链访问。 在左侧选择登录和我的证书。 选择您的分发证书并双击您的私钥。 选择访问控制并将Xcode添加到列表中(如果尚未出现)。

重新启动Xcode并创建一个新的档案。它现在应该能够找到私钥了。


2

很简单,登录创建分发证书的用户账户(可能在不同的Mac上)。打开钥匙串访问并导出他们的私钥。然后将其安装到您的钥匙串中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接