Xcode 6 beta 2问题导出.ipa:"您的帐户已经拥有有效的iOS分发证书"

时间:2014-06-26 18:51:08

标签: ios iphone xcode6

我在Xcode 6 beta 2上导出Ad Hoc Distribution应用时遇到问题:

Failed to locate or generate matching signing assets

在Xcode 6上导出我的项目以进行临时开发时,我会收到此警报。我已经尝试在Xcode 5上导出它,并且在保存.ipa方面没有任何问题。是否有人遇到过这个问题?

27 个答案:

答案 0 :(得分:65)

两天前我遇到了同样的问题。原来问题是:

  1. 我有自己的开发者分发证书 一个合适的私钥
  2. 我的客户的企业开发人员分发证书没有私钥
  3. 我尝试为我的客户制作企业分发包
  4. Xcode向我发出含糊的错误:您的帐户已经拥有有效的iOS分发证书
  5. 解决方案是:获取客户端企业帐户的私钥。有两种可能的选择:

    1. 要求客户提供凭据以访问Apple网站上的企业开发者帐户。撤消旧证书并重新创建它。您将在此过程中创建私钥。 请注意:撤消企业分发证书会使使用该证书签署和部署的所有应用无效(official info)。
    2. 让您的客户将其私钥从他的Keychain Access应用程序导出为* .p12文件,并使用密码将其发送给您。您无法从Apple网站下载现有的私钥。获得它的唯一方法是询问您的客户。我做到了,而且我能够最终制作包装。
    3. 如何确定您是否拥有证书的私钥:打开Keychain Access应用程序。选择证书。找到你的证书。如果您在证书的左侧看到一个小的灰色三角形,请打开它,然后您会看到您的私钥。没有三角形=没有私钥。

      How to find if you have a private key for certificate

答案 1 :(得分:51)

这对我有用。

  1. 在我的机器上,我保留了Xcode 5和Xcode 6 beta。

  2. 从Xcode 6 beta开始,归档项目。关闭Xcode 6。

  3. 打开Xcode 5,转到管理器并使用适当的配置文件导出为Ad Hoc版本。

  4. 就是这样!

答案 2 :(得分:49)

我遇到了同样的问题,我不得不使用命令行" xcodebuild"工具作为解决方法,只安装了Xcode 6(没有重新安装Xcode 5)。

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

示例:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile "Provisioning Profile Name"

答案 3 :(得分:28)

就我而言,解决问题的是从Apple开发者帐户中删除所有分发证书。然后,Xcode再次设法创建开发和分发证书,这就是诀窍。

答案 4 :(得分:19)

我在没有续签证书的情况下得到了解决方案:

1 - 使用适当的代码签名身份配置文件

归档目标

2 - Organizer 中创建的文件中的右键 - > 在Finder中显示

3 - xcarchive 文件中的右键 - > 显示包内容

4 - 在 Finder 中,转到产品/应用程序/

5 - 将文件Products / Applications / appName上传到iTunes

6 - 当应用程序出现在iTunes中时,右键单击它 - > 在Finder中显示这是ipa文件

7 - 通过App Loader 3.0发送此ipa

我不认为这是一个持久的解决方案,但不想删除我的证书

答案 5 :(得分:17)

最终解决了它!!

1)通过developer.apple.com创建一个新的生产证书,该证书要求您使用 Keychain Access 在您的计算机上创建新的私钥

2)在同一个开发人员门户中,打开与此应用程序一起使用的分发配置文件,然后选择刚刚创建的新生产证书。生成该条款然后下载并运行它

3)运行您的应用程序,将其存档,然后导出存档。

中提琴

这花了我几天时间,如果不是几个星期,我希望它可以帮助你。

答案 6 :(得分:14)

创建新的iOS Distributon证书并选择Production> App Store& AdHoc部分。另外,请不要忘记更改目标>构建设置>代码签名全部到iOS发布。(但在创建ipa之后将其设置回iOS Developer) 只有这解决了我的问题。

答案 7 :(得分:11)

我今天遇到了与Xcode 6.1.1相同的问题

当我尝试通过Xcode添加iOS分发证书时,我得到的错误是一样的。在会员中心已经有几个已发布的分发证书,我不想让它们无效,因为如果它们用于企业环境中的Ad Hoc分发,这也会使设备上安装的应用程序无效(至少这是我和#39;已阅读)。

我做的是:
 1.通过Keychain Access从证书颁发机构生成证书请求。并将请求保存到文件中;
 2.登录到会员中心证书区域生产部分,并请求新的" App Store和Ad Hoc"生产证书,这要求步骤1中的文件;
 3.下载新证书,当在Keychain Access中导入时,它现在有一个私钥。

后来我清理了Xcode,重新启动它,检查了我的帐户中的配置文件是否可见并构建了一个新的存档。现在我能够验证存档。

现在,如果我尝试申请一个新的" App Store和Ad Hoc"证书此选项对我来说是灰色的,我想这是因为我的帐户已经颁发了证书。如果是这种情况,您可能需要先取消之前的证书,然后才能发出新证书。这就是为什么Apple建议备份您的证书。但很可能您不需要使所有生产证书无效,因为我已在配置文件中包含了许多证书。

希望这有助于某人:)

答案 8 :(得分:7)

Apple已经改变了Ad Hoc构建的方式。现在,您无法使用dev证书进行Ad Hoc分发构建。您应该使用带有" Ad Hoc"的分发证书。而是配置文件。

答案 9 :(得分:6)

我相信您在此屏幕中结束的实际原因是在尝试将.ipa文件分发给您的测试人员和客户端时。 在Xcode 6中,要获取.ipa文件,您可以使用旧方法生成iPA:

  1. 在Xcode中选择管理器。在“存档”选项卡中,选择您需要生成其iPA文件的存档。
  2. 右键单击并选择“在Finder中显示”选项
  3. 您将看到.xarchive文件。右键单击并选择“显示包内容”
  4. 您将看到文件夹:dSYMs,Info.plist和Products。
  5. 打开产品>应用程序,您将看到.app文件。
  6. 将此.app文件拖放到Mac中的iTunes。
  7. 您的.app文件将列在iTunes中的“我的应用”下。
  8. 右键单击您的应用程序,然后选择“在Finder中显示”。
  9. 现在您有.ipa文件,您可以将其发送给测试人员进行测试。 希望这会有所帮助。

答案 10 :(得分:4)

苹果管理私钥和公钥的方式发生了变化。 以前在两台机器上共享帐户的方​​法是
1.下载配置
2.出口/结账证书

将它们安装在另一台Mac上

但是现在你不必这样做,你导出整个帐户 1.XCode - >偏好 - >左下角的帐户(选择帐户)可以选择导出enter image description here 当您在其他系统上导入时,系统将提示您输入密码.A .developerprofile文件将在您选择的位置下载。

2.在其他Mac上下载它,当您看到提示您的设备已有有效签名身份时,请单击导入开发者配置文件并导入此.developerprofile文件。enter image description here输入密码时提示。

得到帮助from here

答案 11 :(得分:3)

我按照以下步骤解决了这个问题:

1)在您的Apple开发者帐户中:创建新的生产证书选择App Store和Ad Hoc Option

2)在您的Apple开发者帐户中:使用您当前的包ID和在第一步中创建的证书创建新的配置文件

3)在你的xcode中:

  • 选择目标
  • 在区域代码签名
  • 区域中的“构建设置”选项卡中
  • 在子区域代码签名身份 - 发布
  • 设置新的分发证书(ad hoc)
  • 在配置文件中 - 设置新的配置文件(ad hoc)

似乎xcode 6现在需要临时分发证书才能导出您的IPA。

enter image description here

答案 12 :(得分:3)

我今天遇到了同样的问题,并且我认为找到了一个很好的解决方案。

首先,有一些不正常的事情:

enter image description here

正常是:

enter image description here

并在钥匙串中:

enter image description here

正常是:

enter image description here

然后,我意识到我缺少包含正确iOS分发证书的正确配置文件。

最后,我的解决方案是:使用我的CertificateSigningRequest.certSigningRequest文件生成新的iOS分发证书,并使用新的iOS分发证书生成新的配置文件

请注意,我不会删除旧的认证和配置文件,因为我的同事与他们合作得很好。这会影响我已发布的应用吗?答案是。我只是更改了代码签名证书,而push notification certificate等一些重要证书与应用ID:

相关联

enter image description here

所以不要担心。

希望以上内容有所帮助。

答案 13 :(得分:2)

我从Xcode 5升级到6后才遇到这个问题。

在我的情况下,创建一个新的生产证书,然后为我的应用重新创建分发配置文件就可以了。

答案 14 :(得分:2)

我撤销了我的产品证书,并请求另一个,解决了这个问题。 也许你需要重新启动你的xcode。

答案 15 :(得分:2)

正如评论者指出的那样,这已被证明是我和他人的解决方案:

我删除并重新下载了所有必需的证书以及生成所需的密钥,并且我能够通过此错误

答案 16 :(得分:1)

我的解决方案是删除我正在使用的唯一iOS生产证书并再次创建它。执行此操作,您必须创建一个新的Provisioning配置文件,分配刚刚创建的证书。

然后我再次完成了归档过程并且有效!

答案 17 :(得分:1)

此外,我发现 Xcode帐户正在发挥作用 -

enter image description here

事实证明我的个人帐户上确实有一个有效的分发证书( mobilology ),所以我暂时从“帐户”部分删除了该帐户(您可能只希望保留该帐户)从...分发。

突然签名/存档过程有效了!

答案 18 :(得分:1)

步骤1: - 登录您的Apple开发者帐户

步骤2:选择证书

步骤3: - 如果有多个分发证书,则删除

步骤4: - 然后重试归档(如果错误仍然存​​在,请撤消所有证书并创建新的分发证书并编辑您的配置文件。)

答案 19 :(得分:1)

我认为这是Xcode的一个错误。为了使它工作,我需要删除实际的分发临时配置文件,我不得不从devcenter创建一个新的临时分发配置文件。这适用于我

答案 20 :(得分:1)

我也遇到了同样的问题,我使用的是开发证书而不是Adhoc。使用Adhoc证书后问题已解决。

答案 21 :(得分:1)

从Apple开发者网站删除ios Distribution证书,并使用certSignReq文件重新生成ios Distribution。永远适合我。您的其他应用程序不会受到影响。至少在我的情况下它从来没有。

答案 22 :(得分:1)

我通过简单地在开发人员门户(在我的例子中是App Store配置文件)上重新生成配置文件并通过iPhone配置实用程序添加到我的计算机来解决这个问题。我不想弄乱证书,并成功避免了。

我注意到在我的控制台中从Xcode记录了这条错误消息:

  

所有有效的配置文件都不允许使用指定的权利:application-identifier,beta-reports-active,keychain-access-groups。

下载新的配置文件后,缺少beta-reports-active = true,并且Xcode签署了该版本。

答案 23 :(得分:1)

在我的情况下,我生成了一个新的分发配置文件并将其添加到XCode,然后尝试提交构建。事实证明,我必须做的就是重新启动此消息,重启XCode并再次尝试提交。工作

答案 24 :(得分:1)

在我的情况下,我在尝试从Organizer导出和AdHoc构建时收到错误消息。我做了两件事,其中任何一件都可能解决了这个问题:

1)从我的钥匙串中导出了它声称我没有的现有证书,将其从钥匙串中删除,重新导入。

2)创建了一个临时分发证书,刷新了XCode帐户以获取新的分发配置文件。

之后,我能够将完全相同的存档导出到AdHoc构建。我真的认为只有这样一个事实,我错过了一个针对特定bundleID的ad-hoc发行版,导致XCode混淆。

跟进:我之前创建的档案不起作用,我不得不重新生成它。一个问题是,当选择存档并选择导出Ad-Hoc构建时,选择的默认帐户是构建的错误帐户(项目在归档构建时没有选择默认帐户)。

答案 25 :(得分:1)

在官方最新的Xcode 6.0中,如果你不小心在你的权利文件中创建了一个有这样一个密钥的记录,就会发生这种情况:

com.apple.security.application-groups

我不确定Xcode是否默认自动创建它。但删除该密钥解决了我的问题。我没有必要重新创建任何证书。这不是我的问题。

答案 26 :(得分:1)

这对我有用(企业帐户)

  

从其他计算机导入开发人员配置文件,该计算机使用密钥加载我需要的证书。
  将应用程序包重命名为企业名称(它在应用程序商店名称下命名)   将“常规”选项卡中的团队名称更改为我公司的团队 - 这是默认为我的个人开发者帐户!

通过这些更改,我可以将ipa导出为ad-hoc和enterprise,将其上传到Hockey Rink,然后将其下载到手机上