【问题标题】:Xcode 6 beta 2 issue exporting .ipa: "Your account already has a valid iOS distribution certificate"Xcode 6 beta 2 导出 .ipa 问题:“您的帐户已经拥有有效的 iOS 分发证书”
【发布时间】:2014-08-17 17:57:39
【问题描述】:

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

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

【问题讨论】:

  • @christopher.ryan.cruz 我也有同样的问题。我仍然可以在我的 Mac 上使用 xcode5 导出,但尝试使用新的 xcode6 时会收到相同的错误消息。你搞清楚了吗?
  • 任何运气解决这个@Gal?
  • @christopher.ryan.cruz 这就是解决方案。 Xcode 说“没有有效的分发证书”。重新创建或重新下载它应该可以解决问题。
  • XCode6 的 GM 版本刚遇到这个问题。 :-{
  • 即使在 xCode 6 官方版本中,我也遇到了这个问题。多次尝试撤销,从钥匙串中删除,再次在xcode中注销和登录帐户,但都没有给我带来积极的结果!有什么帮助吗?

标签: ios iphone xcode6


【解决方案1】:

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

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

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

  1. 请您的客户提供凭据以访问其在 Apple 网站上的企业开发者帐户。撤销旧证书并重新创建它。您将在此过程中创建私钥。 注意:吊销企业分发证书会使使用该证书签名和部署的所有应用 (official info) 失效。
  2. 请您的客户从他的 Keychain Access 应用程序中将他的私钥导出为 *.p12 文件,并将其与密码一起发送给您。您无法从 Apple 网站下载现有的私钥。获得它的唯一方法是询问您的客户。我做到了,我终于能够制作包裹。

如何确定您是否拥有证书的私钥:打开 Keychain Access 应用程序。选择证书。找到你的证书。如果您在证书左侧看到小的灰色三角形,打开它会看到您的私钥。没有三角形 = 没有私钥。

【讨论】:

  • 我今天遇到了这个错误,完全被难住了,直到我读到你的出色答案。非常感谢! +1
  • 对于一个完全无法理解的问题,这真是一个绝妙的答案。
  • 优秀。谢谢。
  • @AlexanderVasenin 我试过这个,但同样的问题仍然存在。有什么解决办法吗?
【解决方案2】:

这对我有用。

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

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

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

就是这样!

【讨论】:

  • 我在 GM 上遇到了这种情况。自从本周发布 Xcode 6 和 iOS8 以来,这不会是一个有效的解决方案。
  • 在 Xcode 6.0.1 上问题消失了。 Apple 改变了面向开发人员的 Ad Hoc 分发方式。现在您不能使用开发证书制作 Ad Hoc 分发版本。您需要具有“Ad Hoc”配置文件(而不是开发配置文件)的分发证书来进行 Ad Hoc 构建。这是一个真正的痛苦,你不能再在多台 Mac 上使用一个 Apple Developer 帐户来存档 TF (TestFlight) 构建。似乎每个开发人员都应该单独支付 99 美元/年! Apple 的 TestFlight 听起来很有希望,但 Beta 版本将由 App Review Team 进行审核。 :(
  • 后来 - 在我为相关开发者帐户撤销并重新生成 所有 证书和配置文件后,问题终于得到解决。
  • 在 Xcode 6.1 上不再存在问题。但是,如果您想为 TestFlight (testflight.com) 分发进行 Ad Hoc 构建,您必须使用 Ad Hoc Distribution Provision。 Development Provision 将不再允许您存档以进行临时分发。 Apple 的做法不是很好。
  • 我在 Xcode 6.1 中仍然遇到这个问题,当我尝试导出时,Xcode 5.1.1 现在在我的所有配置文件中都显示一个黄色警告三角形。在我开始使用 Xcode 6.1 构建之前,这并没有发生。
【解决方案3】:

我遇到了同样的问题,我不得不使用命令行“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"

【讨论】:

  • 非常感谢!这很奏效,并发出了一个临时构建。
  • 我能够以这种方式生成 *.ipa,但无法安装它(应用程序只是挂在“正在安装...”上)。 Xcode 中的设备日志显示代码签名错误。
  • 我们可以在哪个文件夹路径下写这段代码来创建ipa?
  • 在尝试在本地和 Xcode 6.1/iOS 8.1 的开发者门户中删除和撤销证书、密钥和配置文件失败后,这是唯一对我有用的解决方案
  • 我发现了类似的解决方案,描述性非常好,对初学者很有帮助datacalculation.blogspot.in/2014/10/…
【解决方案4】:

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

【讨论】:

  • 这也意味着您必须重新执行所有临时分发配置文件。
  • @Kendall,我没有重新做我所有的临时分发配置文件。只需从钥匙串和 Apple 开发人员门户中删除证书。然后 Xcode 设法自己解决了所有问题
  • 这对我也很有效......这一直是每个 Xcode 版本的问题,我真的希望 Apple 能花一些时间来改进这个可怕的过程。
  • 也适用于我(使用 Xcode Beta 6),请务必从 Apple 开发者网站和钥匙串中删除证书,然后让 Xcode 解决问题
  • 当您说您删除了所有分发证书时,您是说您从计算机中删除了它们并 xcode 重新安装了它们,还是您说您从成员门户中删除了它们并且 xcode 在代替他们?
【解决方案5】:

我在不更新证书的情况下得到解决方案:

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

归档目标

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

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

4 - 在 Finder 中,转到 Products/Applications/

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

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

7 - 通过 App Loader 3.0 发送此 ipa

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

【讨论】:

  • 请问我们为什么要在这里使用应用程序加载器?我真的不知道。
  • 什么是“适当的”代码签名身份和配置文件?我尝试将 Release Code Signing Identity 设置为“iOS Distribution”,但没有帮助。如果我将 Release Provisioning Profile 设置为“Automatic”以外的任何内容,Xcode 会破坏代码签名身份。
  • 非常感谢!我不知道这个。
【解决方案6】:

终于解决了!!

1) 通过 developer.apple.com 创建一个新的生产证书,这需要您使用钥匙串访问在您的计算机上创建一个新的私钥

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

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

中提琴

这花了我几天甚至几周的时间才弄清楚,我希望它对你有所帮助。

【讨论】:

  • 看起来你的“voilà”已经自动更正了;对于 Stack Overflow 来说,让我编辑还不够。
【解决方案7】:

创建新的 iOS 分发证书并选择 Production> App Store & AdHoc 部分。也不要忘记将 Target>Build Settings> Code Signing all 更改为 iOS Distribution。(但在创建 ipa 后将其设置回 iOS Developer) 只有这样才能解决我的问题。

【讨论】:

【解决方案8】:

我今天在使用 Xcode 6.1.1 时遇到了同样的问题

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

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

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

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

希望这对某人有帮助:)

【讨论】:

  • 感谢您的信息,天使。我有 Xcode 6.1.1,昨天和今天我已经尝试过了,但我一定是错了一个脆弱的步骤,因为我仍然无法验证我的存档。 (仅供参考,根据我在 SO 其他地方读到的内容,您将该选项显示为灰色的原因是您已经拥有两个生产证书,这显然是 Apple 的秘密限制)
  • 您是否通过钥匙串访问看到了分发证书的私钥。如果看到它,您可以尝试: 1. 删除您在管理器中为此项目拥有的所有档案。 2. 在构建存档之前,请确保您已选择项目目标,并且目标设备是真实设备,而不是模拟器。 3. 通过 Xcode 的 Product 菜单执行“Clean Build Folder”,这与 Clean 选项相同,但您需要按住 Alt 键。 4. 在实际设备上运行您的项目并确保一切正确。 5 创建您的档案。 6. 尝试验证它。
  • 但是如果您没有看到私钥,您将无法验证,因为您无法对包进行签名。昨天我们和我的一位同事一起尝试了这个过程,我不得不通过 Xcode Account 使用选定的 iOS 发行版导出我的私钥。然后我们通过 Keychain Access 导入它,他能够验证构建并将其上传到 iTunes Connect。对我而言,我需要了解此过程的是您确实需要 2 个证书:iOS 开发和 iOS 分发。它们用于不同的情况,对于 iTunes Connect,您需要 Distribution one :)
  • 谢谢,天使。我终于弄清楚了哪个证书缺少私钥,从 Xcode > Accounts and Dev Center 中删除了每个证书和配置文件,然后重新开始。这个过程太脆弱了,据说在同一台 Mac 上拥有两个开发者帐户似乎是导致问题的部分因素。
  • 很高兴听到你想通了!
【解决方案9】:

Apple 改变了 Ad Hoc 构建的方式。现在您不能使用开发证书制作 Ad Hoc 分发版本。您应该改用带有“Ad Hoc”配置文件的分发证书。

【讨论】:

  • 你有这方面的文档链接吗?
  • 您可以尝试自己删除所有证书和配置文件,让 XCode 完成剩下的工作,您将看到它自动创建分发证书和临时配置文件。
  • 我做到了,谢谢。只是想知道苹果是否真的在任何地方宣布了它,或者只是让我们去弄清楚。
【解决方案10】:

我相信您最终出现在此屏幕上的实际原因是在尝试将 .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 中显示”。

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

【讨论】:

    【解决方案11】:

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

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

    但现在您不必导出整个帐户。
    1.XCode -> 首选项 -> 帐户(选择帐户)在左下角有导出选项 在其他系统上导入时,系统将提示您输入密码。将在您选择的位置下载 .developerprofile 文件。

    2.在其他mac上下载它,当您看到提示时,您的设备已经具有有效的签名身份,点击import Developer Profile并导入这个.developerprofile文件。在提示时输入密码。

    得到帮助from here

    【讨论】:

    • @Ranjit 然后清除一切并制作新证书
    【解决方案12】:

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

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

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

    3) 在你的 xcode 中:

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

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

    【讨论】:

      【解决方案13】:

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

      首先,有一点不正常:

      正常情况是:

      在钥匙串中:

      正常情况是:

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

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

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

      所以不用担心。

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

      【讨论】:

        【解决方案14】:

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

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

        【讨论】:

        • 您是如何删除所有证书的?我从钥匙串中删除了它们,但仍然有同样的问题。
        • 您是否重新下载了证书并确保证书中有密钥@lucas?
        • 是的,我做了将近 20 次,但仍然有同样的问题。我删除了我所有的证书、配置文件、以前存档的应用程序,但仍然有“您的帐户已经有一个有效的 iOS 分发证书”
        • 通过这种方式,实际上您授予 xCode 自动创建和使用临时配置文件的权限,检查您的 Apple 开发程序,您将看到该临时配置文件。
        【解决方案15】:

        我吊销了我的生产证书,并要求另一个,解决这个问题。 也许你需要重启你的 xcode。

        【讨论】:

        • 这对我有用。具有讽刺意味的是,生产证书在我的钥匙串中有它的私钥,并且仍然有效!
        【解决方案16】:

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

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

        【讨论】:

          【解决方案17】:

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

          com.apple.security.application-groups
          

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

          【讨论】:

          • 你在哪里找到这个文件分配?
          • 就是plist文件,名称为:PRODUCT_NAME.entitlements(Xcode默认创建)
          • 如果您从功能启用应用程序组,com.apple.security.application-groups 将打开。如果您为开发应用扩展创建新目标,它会自动包含在内。
          【解决方案18】:

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

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

          没有一个有效的配置文件允许指定的权利:application-identifier、beta-reports-active、keychain-access-groups。

          下载新的配置文件后,丢失的beta-reports-active = true 出现了,Xcode 对构建进行了签名。

          【讨论】:

            【解决方案19】:

            我的解决方案是删除我正在使用的唯一 iOS 生产证书并重新创建它。为此,您必须创建一个新的配置文件来分配刚刚创建的证书。

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

            【讨论】:

              【解决方案20】:

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

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

              签名/归档过程突然起作用了!

              【讨论】:

                【解决方案21】:

                Step1:-登录你的苹果开发者账号

                第二步:-选择证书

                Step3:-如果有多个分发证书则删除

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

                【讨论】:

                  【解决方案22】:

                  我认为这是 Xcode 的错误。为了使它工作,我需要删除实际的分发临时配置文件,我必须从 devcenter 制作一个新的临时分发配置文件。这对我有用

                  【讨论】:

                    【解决方案23】:

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

                    【讨论】:

                      【解决方案24】:

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

                      【讨论】:

                        【解决方案25】:

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

                        【讨论】:

                          【解决方案26】:

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

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

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

                          之后,我能够将完全相同的存档导出到 AdHoc 版本。我真的认为只是因为我错过了一个针对特定 bundleID 的 ad-hoc 分发,这导致 XCode 被混淆了。

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

                          【讨论】:

                            【解决方案27】:

                            这对我有用(企业帐户)

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

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

                            【讨论】:

                              猜你喜欢
                              • 2015-08-29
                              • 1970-01-01
                              • 1970-01-01
                              • 2014-12-30
                              • 1970-01-01
                              • 1970-01-01
                              • 2015-01-23
                              相关资源
                              最近更新 更多