因为没有证书与证书ID匹配,所以无法在Ad Hoc配置文件到期之前更新它。

13

我的Ad Hoc配置文件即将在14天后过期。组织者中有一个"续订"按钮,但当我点击它时,会出现以下信息:

该团队上没有与提供的证书ID匹配的当前证书。

在预配门户中,该配置文件显示为活动状态,有效期到30日。我还看到了一个具有相同过期日期的分发证书。我必须假设这个证书是用来签署配置文件的证书。有没有办法在不吊销和创建新的Ad Hoc配置文件和证书的情况下解决这个问题?

如果我必须重新开始,最好的方法是什么,以免弄乱我的测试人员?

关于此问题有很多帖子和答案,但我找不到任何解决证书与配置文件证书ID不匹配的情况的帖子。


你可能已经将新的UDID添加到了你的账户中? - viswateja
是的,自从我创建了adhoc配置文件和证书以来,已经添加了几个新的UDID。这会影响到什么,有没有什么我可以做来纠正这种情况? - user278859
1个回答

49

Ad-Hoc配置文件由三个主要元素组成:

  • 精确的1个AppID
  • 您发行证书的公钥
  • 一个或多个注册测试设备ID

当您首次生成此配置文件(如果您当前的配置文件即将过期,则约一年前),您指示它在构建该配置文件时使用您当时的发行证书 - 生成的Ad-Hoc配置文件的到期日期设置为匹配发行证书的到期日,因为无法使用已过期的证书签署应用程序(顺便说一句:这并不一定适用于越狱的情况...)

您的主要问题“是否可以在不撤销的情况下解决?”的答案是坚定的“否” - 即使您可以进行调整,即将到期的发行证书也会导致重新发行的Ad-Hoc配置文件到期时间与发行证书相匹配。在14天后,您的证书和配置文件都将过期,您将回到同样的情况。不幸的是,在那时,您还将面临一个新问题,任何已发布到测试人员的现有构建将不再启动,因为签名证书和配置文件已过期。

相反,这两个星期是您积极采取措施并让用户迁移到具有新证书和配置文件的新构建的机会。对于我的测试人员来说,我把我当前发行证书的最后几周作为迁移窗口,以便切换构建并让测试人员下载和安装最新的测试构建,以便他们可以继续测试。好消息是您已经提前发现证书即将到期,有足够的时间解决问题并使测试人员迁移 - 有些人就没有那么幸运,必须在过期后进行追赶,并且测试人员大声抱怨应用程序崩溃/不再启动...这对任何开发人员都是不良结果,尤其是如果您是一人商店,并且需要自己协调开发和测试人员通信。

那我需要做什么?

从高层次上来看,进行迁移几乎与第一次设置此Ad-Hoc配置文件相同--它仅需要清理旧的Keychain和Provisioning Profiles数据,并发送一些测试人员的电子邮件,鼓励他们在您提供新版本后升级。大致上,此过程如下:

  1. 撤销现有的发布证书并重新发放新的发布证书。
  2. 从您的Keychain中删除现有的发布证书并安装新的发布证书。
  3. 更新和安装现在“无效”的Ad-Hoc配置文件,以使用您新创建的发布证书。
  4. 必要时更新代码签名构建设置。
  5. 构建并向您的测试人员发布Ad-Hoc版本。

等等--撤销我的现有证书不会影响我的测试人员吗?

不会,完全没有!您现有的Ad-Hoc版本将继续正常工作,直到过期日期,因为它们已经拥有了内置于已发送给他们的Ad-Hoc版本中的验证代码签名所需的所有信息。然而,一旦证书过期,事情就会无法启动,您就会有一堆抱怨的测试人员。

我假设您正在使用个人帐户,因此证书的格式将显示为“iPhone Developer:FirstName LastName”和“iPhone Distribution:FirstName LastName”。如果您使用公司帐户,则格式会略有不同。我还假设您只有一个帐户;如果您注册了多个开发者帐户,请在从Keychain中搜索和删除现有证书和配置文件时格外小心,因为可能会有多个类似的条目。

首先退出Xcode,然后转到developer.apple.com/ios并登录“证书、标识符和配置文件”区域。这以前被称为“配置中心”。

撤销并重新发放发布证书

  1. 导航到发布证书区域。
  2. 找到即将过期的分发证书并撤销它。您可能会遇到一条消息,告诉您撤销此证书将使任何关联的预配文件无效--这完全是预期且可以接受的。实际上,这正是我们想要的,以便您可以更新事物!
  3. 点击右上角的“添加”按钮,然后按照步骤创建新的“应用商店和Ad Hoc”分发证书。将文件下载到计算机上,但现在不要安装它--我们应该先从您的开发计算机清理旧证书。
  4. 删除已撤销的证书并安装新证书

    1. 打开密钥串访问并搜索“iPhone Distribution”。
    2. 删除与“iPhone Distribution”匹配的任何蓝色证书。证书图标也可能显示一个红色的“X”,表示它已过期或被撤销。这些也可以清理,因为它们不再有用。
    3. 双击新下载的证书并安装它。

    编辑Ad-Hoc预配文件

    1. 导航到分发预配文件部分,找到您的Ad-Hoc预配文件。
    2. 如果需要,请编辑该配置文件以更新测试设备列表。
    3. 单击“生成”并下载新创建的预配文件。如果“生成”按钮被禁用,请检查预配文件的名称中是否有特殊字符,并且您已选择至少一个测试设备。
    4. 将新下载的预配文件拖放到Xcode中。任何旧版本的配置文件都可以从组织器中删除。

    此时,您应该可以重新启动并准备更新Code Sign设置(也就是说,如果您将它们设置为与特定配置文件匹配而不是使用自动配置文件选择器选项,则需要更新该设置以指向现在当前版本的预配文件)。

    你很幸运,因为你正在采取措施修复这个问题,而你的测试人员仍能够使用你的应用程序,不必匆忙解决。花些时间清理旧证书和即将到期的配置文件,这样Xcode就可以更容易地确定你想要使用最新的配置文件。


3
布莱恩,你的回答写得太棒了!非常感谢,谢谢。 - user278859
3
Bryan,我只是想再次感谢你。我刚刚按照你的指示更新了我的Ad Hoc档案,一点问题都没有。多亏了你,我又可以使用它继续一年了。John - user278859
1
不客气 - 很高兴听到您已经重新正常运行。 - Bryan Musial
1
杰出的答案。我在stackoverflow上读过的最好的答案之一。 - uerceg
1
@Bryan 我真希望你能为苹果工作,因为你的回答比他们自己的开发者中心文档清晰得多。 - gregtzar
显示剩余2条评论

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