导出.ipa的Xcode 6 beta 2问题:“您的帐户已经具有有效的iOS发行证书”


193

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

找不到或生成匹配的签名资产

在Xcode 6上导出我的项目以进行临时开发时,我收到此警报。我试过在Xcode 5上导出它,保存.ipa完全没有问题。有人也遇到这个问题吗?


2
@ christopher.ryan.cruz我有同样的问题。我仍然可以在Mac上使用xcode5进行导出,但是在尝试使用新的xcode6时会得到相同的错误消息。你知道了吗?
2014年

1
解决这个@Gal有运气吗?
simonthumper 2014年

1
@ christopher.ryan.cruz是解决方案。Xcode说“没有有效的分发证书”。重新创建或重新下载它应该可以解决该问题。
Oxcug

8
GM版本的XCode6刚遇到这个问题。:-{
Kendall Helmstetter Gelner 2014年

4
即使在正式的xCode 6版本中,我也遇到这个问题。尝试撤消很多次,从钥匙串中删除,再次在xcode中注销和登录帐户,但没有一个能给我带来积极的结果!有什么帮助吗?
史蒂文

Answers:


52

这对我有用。

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

  2. 在Xcode 6 beta中,存档项目。关闭Xcode 6。

  3. 打开Xcode 5,转到Organizer,并使用适当的配置文件将Ad Hoc构建为导出。

而已!


9
我正在通用汽车上发生这种情况。自Xcode 6和iOS8于本周发布以来,这将不再是一个有效的解决方案。
bergy 2014年

20
在Xcode 6.0.1上,问题消失了。苹果已经改变了为开发人员分配Ad Hoc的方式。现在,您无法使用“开发证书”进行Ad Hoc发行版本的构建。您需要具有“ Ad Hoc”供应配置文件(而不是“ Development Provisioning”配置文件)的发行证书来进行Ad Hoc构建。这确实很痛苦,您不能再在多台Mac上使用一个Apple Developer帐户来进行存档TF(TestFlight)构建。似乎每个开发人员都应单独支付$ 99 /年!Apple的TestFlight听起来很有希望,但Beta版本将由App Review Team进行审查。:(
阿德南2014年

3
后来-在我撤销并重新生成了有关开发人员帐户的所有证书和配置文件后,问题终于得到解决。
Graham Dawson

1
在Xcode 6.1上,问题不再存在。但是,如果要为TestFlight(testflight.com)发行版建立临时构建,则必须使用临时发行设置。开发条款不再允许您存档以进行临时分发。苹果公司不是一个好的方法。
阿德南2014年

我在Xcode 6.1中仍然遇到此问题,而当我尝试导出时,Xcode 5.1.1的所有配置文件现在都显示一个黄色的警告三角形。在我开始使用Xcode 6.1进行构建之前,这没有发生。
格雷格

66

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

  1. 我有自己的开发者发行证书带有正确的私钥
  2. 我有没有私钥的客户的企业开发人员分发证书
  3. 我尝试为客户制作企业发行包
  4. Xcode向我抛出模糊错误:您的帐户已经具有有效的iOS发行证书

解决方案是:为我的客户的企业帐户获取私钥。有两种可能的选择:

  1. 要求您的客户提供凭据以访问其在Apple网站上的企业开发人员帐户。吊销旧证书并重新创建它。您将在此过程中创建私钥。注意:吊销企业发行证书会使使用该证书签名和部署的所有应用程序失效(官方信息)。
  2. 要求您的客户从他的“钥匙串访问”应用程序中将其私钥导出为* .p12文件,并使用密码将其发送给您。您无法从Apple网站下载现有私钥。获得它的唯一方法是询问您的客户。我做到了,终于可以制作出包装了。

如何确定您是否具有证书的私钥:打开“钥匙串访问”应用程序。选择证书。查找您的证书。如果您在证书的左侧看到一个小的灰色三角形,请打开它并看到私钥。没有三角形=没有私钥。

How to find if you have a private key for certificate


1
我今天遇到了这个错误,在我读完你的出色答案之前,我完全陷入了困境。太谢谢你了!+1
Dal

2
对于完全无法解决的问题,这真是一个绝妙的答案。
shmim 2014年

1
优秀的。谢谢。
韦德·安德森

@AlexanderVasenin我尝试了这个,但是同样的问题仍然存在。有什么解决办法吗?
Zalak Patel

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"

2
非常感谢!那奏效了,并且发出了临时的版本。
JocelynH 2014年

1
我可以用这种方式生成* .ipa,但无法安装(应用程序仅挂在“正在安装...”上)。Xcode中的设备日志显示代码签名错误。
亚历山大·瓦森宁

我们可以在哪个文件夹路径中编写此代码来创建ipa?
Esha

1
这是在本地尝试在Xcode 6.1 / iOS 8.1的开发人员门户中尝试并未能成功删除和撤消证书,密钥和配置文件后对我有用的唯一解决方案
David Wadge 2014年

1
我在很好的描述性步骤中找到了类似的解决方案,它确实对初学者datacalculation.blogspot.in/2014/10/…
iOS测试

28

就我而言,解决问题的方法是从我的Apple开发者帐户中删除所有发行证书。然后,Xcode设法再次创建了开发和发行证书,从而达到了目的。


1
这也意味着您必须重新执行所有临时分发配置文件。
Kendall Helmstetter Gelner 2014年

1
@Kendall,我没有重新做所有的临时分发配置文件。只需从钥匙串和Apple开发人员门户删除证书即可。然后Xcode设法自己解决了所有问题
lucaslt89 2014年

12
这对我也很有效……这在每个Xcode版本中都是一个长期存在的问题,我真希望Apple花费一些时间来改进这个可怕的过程。
Raconteur 2014年

2
同样适用于我(使用Xcode Beta 6),只需确保从Apple开发人员网站和钥匙串中删除证书,然后让Xcode解决该问题
Claus

当您说删除了所有分发证书时,是在说您从计算机中删除了它们并在xcode中重新安装了它们,还是在说您从成员门户网站中删除了它们并由xcode创建了新的证书?
Jacksonkr

19

我得到了无需续签证书的解决方案:

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

2-在管理器中创建的文件中右键单击-> 在Finder中显示

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

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

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

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

7-通过App Loader 3.0发送此ipa

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


2
请问我们为什么要在这里使用应用加载程序?我真的不知道。
Mejdi Lassidi 2014年

什么是“适当的”代码签名身份和配置文件?我尝试将发布代码签名身份设置为“ iOS Distribution”,但没有帮助。如果我将发布配置文件设置为除“自动”之外的其他任何Xcode,则会破坏代码签名身份。
格雷格

非常感谢!我不知道这个
Mihriban Minaz 2014年

17

终于解决了!!

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

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

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

中提琴

这花了我数天(甚至数周)才能弄清楚,希望对您有所帮助。


1
看来您的“烦恼”已自动更正;堆栈溢出让我进行编辑还不够。
Jessy 2015年


11

我今天在Xcode 6.1.1中遇到了同样的问题

当我尝试通过Xcode添加iOS发行证书时,得到的错误是相同的。成员中心中已经有几个已颁发的分发证书,我不想使它们失效,因为如果将它们用于企业环境中的临时分发,这也会使设备上安装的应用程序失效(至少这就是我所要的)。已经阅读)。

我所做的是:
1.通过钥匙串访问生成了来自证书颁发机构的证书请求。并将请求保存到文件中;
2.登录到“会员中心证书”区域的“生产”部分,并请求新的“ App Store和Ad Hoc”生产证书,这要求从步骤1开始的文件;
3.下载了新证书,当将其导入“钥匙串访问”时,它现在具有私钥。

之后,我清理了Xcode,重新启动了Xcode,检查了帐户中的配置文件是否可见并建立了新的存档。现在,我可以验证存档了。

现在,如果我尝试申请新的“ App Store和Ad Hoc”证书,则该选项对我来说是灰色的,我想这是因为我的帐户已经签发了证书。如果是这种情况,您很可能需要先取消以前的证书,然后才能颁发新证书。这就是Apple建议备份证书的原因。但是很有可能您不需要使所有生产证书都失效,因为我在配置文件中已经拥有许多证书。

希望这可以帮助某人:)


谢谢你的信息,天使。我有Xcode 6.1.1,昨天和今天已经尝试过此操作,但是我必须走错了一步,因为我仍然无法验证我的存档。(仅供参考,根据我在SO上其他地方所读的内容,您可以选择使用此选项的原因是,您已经拥有两个生产证书,这显然是Apple的秘密限制)
ultrageek

您是否通过“钥匙串访问”看到了分发证书的私钥。万一看到它,您可以尝试:1.删除此项目在Organizer中拥有的所有档案。2.在生成存档之前,请确保已选择项目目标,并且目标设备是真实设备,而不是模拟器。3.通过Xcode的“产品”菜单执行“清洁构建文件夹”,此选项与“清洁”相同,但您需要按住Alt键。4.在实际设备上运行项目,并确保所有步骤均正确。5创建档案。6.尝试验证它。
Angel Naydenov 2014年

但是,如果您看不到私钥,则将无法验证,因为您无法对包进行签名。昨天我们与我的一位同事尝试了此过程,我不得不通过具有选定iOS发行版的Xcode帐户导出我的私钥。然后,我们通过Keychain Access将其导入,他能够验证构建并将其上传到iTunes Connect。对我来说,要完成此过程,我确实需要两个证书:iOS开发和iOS发行。它们在不同情况下使用,对于iTu​​nes Connect,您需要使用发行版1 :)
Angel Naydenov 2014年

谢谢,天使。我终于找出哪个证书缺少私钥,从Xcode> Accounts and Dev Center中删除了每个证书和配置文件,然后重新开始。这个过程太脆弱了,据说在同一台Mac上有两个开发人员帐户似乎是造成问题的部分原因。
2014年

1
很高兴听到您知道了这一点!
Angel Naydenov 2014年

7

苹果已经改变了Ad Hoc的构建方式。现在,您无法使用dev cert进行Ad Hoc发行版本的构建。您应该改为使用带有“临时”设置配置文件的分发证书。


您是否有与此相关的文档链接?
Keab42 2014年

2
您可以尝试删除所有证书和配置文件,然后让XCode承担其余的工作,您会看到它会自动创建分发证书和临时配置文件。
阮山

2
我做到了,谢谢。只是想知道苹果是否真的在任何地方宣布了它,或者只是让我们弄清楚了它。
Keab42

6

我相信您最终出现在此屏幕中的真正原因是试图将.ipa文件分发给测试人员和客户。在Xcode 6中,要获取.ipa文件,可以使用旧的方法生成iPA:

  1. 在Xcode中选择管理器。在“存档”选项卡中,选择需要生成其iPA文件的存档。
  2. 右键单击并选择选项“在Finder中显示”
  3. 您将看到.xarchive文件。右键单击并选择“显示包装内容”
  4. 您将看到以下文件夹:dSYM,Info.plist和产品。
  5. 打开产品>应用程序,您将看到.app文件。
  6. 将该.app文件拖放到Mac中的iTunes中。
  7. 您的.app文件将列在iTunes中的“我的应用程序”下。
  8. 右键单击您的应用程序,然后选择“在Finder中显示”。

现在,您有了.ipa文件,可以将其发送给测试人员进行测试。希望这可以帮助。


4

苹果管理我们的私钥和公钥的方式已经发生了变化。在两台计算机上共享帐户的先前方法是1.
下载配置
2.导出/结帐证书

将它们都安装在另一台Mac上

但现在您不必这样做,您就可以导出整个帐户。
1.XCode->首选项->帐户(选择帐户)在左下角有一个导出选项,系统在此处输入图片说明 将提示您输入密码,输入在其他系统上导入时所需的密码..developerprofile文件将在您选择的位置。

2.在其他Mac上下载它,然后在看到提示您的设备已经具有有效的签名身份时,单击import Developer Profile并导入此.developerprofile文件。在此处输入图片说明出现提示时输入密码。

从这里得到了帮助


@Ranjit然后清除所有内容并制作新证书
2015年

3

我按照以下步骤解决了它:

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

2)在您的Apple开发人员帐户中:使用当前的捆绑软件ID和在第一步中创建的证书创建一个新的配置文件

3)在您的xcode中:

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

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

在此处输入图片说明


3

我今天遇到了同样的问题,并且找到了一个不错的解决方案。

首先,有一些异常现象:

在此处输入图片说明

正常情况是:

在此处输入图片说明

并在钥匙串中:

在此处输入图片说明

正常情况是:

在此处输入图片说明

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

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

请注意,我不会删除旧的认证和配置文件,因为我的同事可以很好地与他们合作。这会影响我已经发布的应用程序吗?答案是否定的。我只是更改了代码签名证书,还有一些重要的证书,例如push notification certificate与应用程序ID的关系:

在此处输入图片说明

所以不用担心。

希望以上内容对您有所帮助。


2

正如评论者所指出的,事实证明这是我自己和其他人的解决方案:

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


4
您如何删除所有证书?我从钥匙串中将其删除,但仍然存在相同的问题。
lucaslt89 2014年

1
您是否重新下载了证书并确保它们在@lucas证书中具有密钥?
3254523'9

5
是的,我做了差不多20次,仍然有同样的问题。我删除了所有证书,配置文件,以前的存档应用程序,但仍然具有“您的帐户已经具有有效的iOS分发证书”
lucaslt89 2014年

2
通过这种方式,实际上您授予xCode权限以自动创建和使用临时配置文件,检查您的apple dev程序,您将看到该adhoc配置文件。
阮山2014年

2

我吊销了生产证书,并要求另外一张证书,以解决此问题。也许您需要重新启动xcode。


这对我有用。具有讽刺意味的是,生产证书在我的钥匙串中有其私钥,并且仍然有效!!
markshiz 2014年

2

从Xcode 5升级到6后,我才遇到此问题。

就我而言,创建一个新的生产证书,然后为我的应用程序重新创建发行配置文件就可以了。


1

在官方最新的Xcode 6.0中,如果您不小心在授权文件中创建了一条具有如下所示键的记录,则会发生这种情况:

com.apple.security.application-groups

我不确定Xcode是否默认自动创建它。但是删除那个键解决了我的问题。我不必重新创建任何证书。这不是我的问题。


1
您在哪里找到此文件分配?
史蒂文

它是一个名为:PRODUCT_NAME.entitlements的plist文件(默认情况下由Xcode创建)
发生

com.apple.security.application-groups如果您从“功能”中启用了应用组,则该功能会打开。如果您为开发应用扩展程序创建了新目标,则会自动包含该目标。
阿德南2014年

1

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

我注意到从控制台中的Xcode记录此错误消息:

有效的配置文件均未允许指定的权利:应用程序标识符,活动的beta报告,密钥链访问组。

下载新的配置文件后,缺少的文件beta-reports-active = true存在,并且Xcode对构建进行了签名。


1

我的解决方案是删除我正在使用的唯一的iOS生产证书,然后再次创建它。这样做,您必须创建一个新的Provisioning配置文件,以分配刚刚创建的证书。

然后我再次执行了存档过程并开始工作!


1

此外,我发现Xcode帐户开始发挥作用-

在此处输入图片说明

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

突然,签名/存档过程开始了!


1

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

步骤2:选择证书

步骤3:-删除是否有多个分发证书

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


1

我认为这是Xcode的错误。为了使其正常工作,我需要删除实际的分发临时配置文件,并且必须从devcenter创建一个新的临时分发配置文件。这对我有效


1

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


1

从Apple开发人员站点中删除您的ios分发证书,然后使用certSignReq文件重新生成ios分发。一直为我工作。您的其他应用程序不会受到影响。就我而言,Atleast从未做到过。


1

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


1

就我而言,尝试从管理器导出和AdHoc构建时收到错误消息。我做了两件事,其中之一可能已经解决了这个问题:

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

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

之后,我能够将完全相同的存档导出到AdHoc版本。我真的以为只是因为我缺少针对该特定bundleID的即席分发,这导致XCode感到困惑。

后续行动:我之前创建的档案无效,我不得不重新生成它。这可能是一个问题的线索是,当选择存档并选择导出Ad-Hoc构建时,选择的默认帐户是该构建的错误帐户(在我存档构建时,该项目没有选择默认帐户)。


1

这对我有用(企业帐户)

从另一台计算机导入开发人员配置文件,该计算机已加载了我所需的证书和密钥。
将应用程序捆绑包重命名为企业名称(在应用程序商店名称下命名)。
将“常规”标签中的团队名称更改为我公司的团队-这是我默认的个人开发者帐户!

通过这些更改,我可以将ipa导出为临时的和企业的,并将其上传到Hockey Rink,然后将其下载到我的手机上

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.