Xcode 6 应用商店提交失败,提示 "Your account already has a valid iOS distribution certificate"。

72

我正在使用最新的XCode(6.1),需要尽快提交应用程序,但似乎无法解决“您的帐户已经拥有有效的iOS分发证书”错误。

我拥有客户的预配资料和他的分发证书(有效),以及他的私钥(我已通过Keychain进行了检查,并确保它在那里)。Bundle ID也是正确的。我已多次删除我的预配资料和证书并重新安装客户端。

这个问题可能是什么原因?我在SO上看到了很多有关此问题的主题,所以我提前为创建另一个克隆而道歉,但我真的不知道如何解决这个问题。

编辑:顺便说一句,我正在运行全新的Yosemite安装


以下是与您有关的内容:https://developer.apple.com/library/ios/technotes/tn2407/_index.html(您可以在“没有可用于签名的标识”子标题下找到相关链接)。 - holex
那个链接仍然可以提供解决问题的指南:https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Troubleshooting/Troubleshooting.html(可能的解决方案在*证书问题*部分下)。 - holex
谢谢您的回复,但是那个链接基本上告诉我要撤销并请求一个新的证书。我不想这样做,因为我的客户证书是有效的,而且我已经拥有了客户的私钥和配置文件,理论上应该可以工作,对吧? - João Pereira
我已经吊销了证书和配置文件很多次,但始终无法使其正常工作。 - djcj
13个回答

34

在开发人员成员中心编辑iOS分发配置文件后,问题得到解决。

由于某种原因,分发配置文件有两个证书可供选择。我切换到另一个证书后,可以验证和提交我的归档版本进行测试。

所以,您可能有多个证书用于签署您的配置文件,请确保选择正确的证书(尝试所有证书),希望这样可以解决问题。

我尝试了很多方法,如从Xcode帐户导出开发人员配置文件并将其导入组织者,从成员中心安装配置文件,将它们添加到我的密钥链中。但这些都没有起作用,只有手动编辑相应的配置文件才开始起作用。

您也可以尝试删除所有可用的配置文件,让Xcode为您创建新的配置文件。这也是可行的。


我有两个开发者账号,每次向其中一个账号提交应用程序时,都需要重置配置文件,有什么建议吗? - bluenowhere
1
只需按下重置按钮,问题就得以解决。 - Warpzit
这是2017年的解决方案! - mgyky

15

我也遇到了这个问题,后来发现是尝试使用开发型颁发配置文件导出 ad hoc 部署时,而非使用分发型配置文件。看起来在 Xcode 6.1 中已不再支持此操作。一旦我创建了一个 ad hoc 配置文件并安装了它,问题就解决了。一个更有用的错误提示会节省我数小时的工作时间,并且会受到高度赞赏,Apple。

这个线程很有帮助:

xcode 6 beta 2 issue with exporting ipa "Your account already has a valid iOS distribution certificate"


11
除了其他答案之外,在2016年2月15日之后还有一种可能性:旧的全球证书已过期,我猜每个人都已经下载了新的证书(或者查看此处)。但是如果您没有删除过期的证书,您将会看到这个错误。您可能需要选择View -> Show Expired Certificates来显示过期的证书。如果错误仍然存在,请尝试像其他人建议的那样重新生成配置文件。

2
另外,还要注意您需要在左上角的“钥匙串”部分往下查找。在撞了几次头之后,我发现在“系统”钥匙串下面有一个额外的过期证书。 - pir800

8
我在迁移至新的Mac时遇到了这个问题。 在旧的Mac上:
  1. 进入“偏好设置 > 帐户 > 选择帐户 > 详细信息”。
  2. 在下拉菜单中右键单击“iOS分发”(或您的分发证书名称)。
  3. 选择“导出...”。
  4. 为“.p12”文件设置密码。
  5. 将此“.p12”文件移动并安装到新的Mac上。
  6. 再次尝试。

1
谢谢,这正是我所需要的。 - kometen

4

问题的另一个可能原因(至少在我的情况下)是我在钥匙串访问中为我所使用的团队拥有两个证书。其中一个已过期,另一个是我想要使用的。在钥匙串访问中删除过期的证书解决了这个问题。


3
我遇到了这个问题,我希望避免我的推送通知出现问题。
对我来说很容易的解决方法就是:前往 developer.apple.com > 项目 > 证书、标识和描述文件 > 描述文件 > 创建一个新的描述文件(用于开发或分发)。
下载所创建的描述文件,将其拖放到 Xcode 图标上,然后在你的项目目标中将新的描述文件设置为配置文件。
这样就解决了我的问题--它可能会在未来提供进一步的帮助。

2
错误信息可能意味着您需要从创建它们的开发人员那里获取分发证书和私钥。如果其他团队成员按下了“重置”按钮(即撤销证书并创建新证书),则可能会发生这种情况。以下是吊销证书的样子:picture showing the revoked cert message 您可以从创建它的开发人员导出有效的证书,并将其导入到其他团队成员的密钥串中。请按以下步骤操作:1.打开“密钥串访问”应用程序;2.在左上角框中单击“登录”;3.在左下角框中单击“证书”;4.检查哪个团队成员拥有有效的证书:当单击“iPhone 分发”证书时,其他所有人都会在顶部看到红色的“此证书已被吊销”。5.备份已删除的证书以避免做出任何不可逆转的操作;6.删除已吊销的证书;7.导出一个有效的证书并分发给团队;8.为其他人导入证书文件。

1

我最近更换了电脑。 原因是我在苹果开发者成员门户网站中有几个开发者证书。 解决方案是:

  • 前往苹果开发者门户网站
  • 进入证书 -> 生产
  • 点击最旧的证书上的"撤销",保留最新的证书

撤销证书不会影响您的苹果商店应用程序 :)


吊销证书不会影响您的Apple Store应用程序,但他们说:“吊销此证书将使其无效,并且使用此证书的任何相关服务或配置文件可能会受到影响”。因此,我不建议使用此解决方案。 - Ionut Necula

1
今天,我通过从钥匙串中删除旧的证书Apple Worldwide Developer Relations Certification Authority并安装新证书(有效期至2023年)来解决了问题。

1

我通过在成员中心编辑我的应用程序中使用的配置文件并重新安装配置文件来解决了这个问题。


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