Ad-Hoc Provisioning Profiles 由三个主要元素组成:
- 正好 1 个 AppID
- 您的分发证书的公钥
- 一个或多个已注册的测试设备 ID
当您第一次生成此配置文件时(大约一年前,如果您当前的配置文件即将到期!),您指示它在构建该配置文件时使用您当时当前的分发证书 - 生成的临时配置文件的到期日期设置为匹配分发证书的到期,因为您无法启动使用过期证书签名的应用程序(旁白:这不一定适用于越狱场景......)
您的主要问题是“可以在不撤销的情况下修复它吗?” 是一个可靠的“否”——即使您可以进行调整,即将到期的分发证书也会导致新重新发布的 Ad-Hoc Profile 的过期时间与分发证书的过期时间相匹配。当您的证书和配置文件都过期时,您将在 14 天后回到同样的情况。不幸的是,那时您还会遇到一个新问题,您向测试人员提供的任何现有构建都将不再启动,因为签名证书和配置文件将失效。
相反,最后两周是您积极主动的机会,让您的用户迁移到具有新证书和配置文件的新版本。对于我自己的测试人员,我将当前分发证书的最后几周视为迁移窗口,以切换构建并让我的测试人员下载并安装最新的测试构建,以便他们可以继续进行测试。好消息是你发现你的证书过期了,有足够的时间让事情理顺并让你的测试人员迁移——有些人就没那么幸运了,在事情过期后不得不追赶,让测试人员大喊你的应用程序崩溃/不再启动...对于任何开发人员来说绝对是一个不受欢迎的结果,
那我该怎么办?
在高层次上,进行迁移与第一次设置此 Ad-Hoc 配置文件几乎相同——它只需要从您的 Keychain 和 Provisioning Profiles 中清理旧数据,并发送一些测试人员电子邮件鼓励您的团队一旦您为他们提供了新版本,请升级。在高层次上,这个过程看起来像这样:
- 撤销您现有的分发证书并重新颁发新的分发证书。
- 从您的钥匙串中删除现有的分发证书并安装新的。
- 更新并安装现在“无效”的 Ad-Hoc 配置文件以使用您新创建的分发证书
- 如有必要,更新 Code Sign 构建设置。
- 构建您的 Ad-Hoc 构建并将其发布给您的测试人员。
等等——撤销我现有的证书不会扰乱我的测试人员吗?
不,一点也不!您现有的 Ad-Hoc 构建将继续完美运行,直到到期日期之后,因为它们拥有在您已经发送的 Ad-Hoc 构建中验证代码签名所需的所有信息。但是,一旦证书过期,事情将无法启动,并且您将拥有尖叫的测试人员。
我将假设您使用的是个人帐户,因此证书将以“iPhone Developer: FirstName LastName”和“iPhone Distribution: FirstName LastName”的格式显示。如果您使用的是公司帐户,则格式会略有不同。我还将假设您只有一个帐户;如果您注册了多个开发者帐户,请在从 Keychain 搜索和删除现有证书和配置文件时格外小心,因为可能有多个类似条目。
首先,退出 Xcode,然后前往 developer.apple.com/ios 登录“证书、标识符和配置文件”区域。这以前称为“供应中心”。
撤销和补发分销证书
- 导航到分发证书区域。
- 找到您即将到期的分发证书并将其吊销。您可能会遇到一条消息,通知您吊销此证书将使任何链接的配置文件无效——这是完全可以预料的。事实上,这正是我们希望它做的,这样您就可以得到更新!
- 单击右上角的“添加”按钮并逐步完成制作新的“App Store and Ad Hoc”分发证书的步骤。将文件下载到您的机器上,但暂时不要安装它——我们应该首先从您的开发机器中清理旧证书。
删除已吊销的证书并安装新证书
- 打开钥匙串访问并搜索“iPhone 分发”。
- 删除任何与“iPhone Distribution”匹配的蓝色证书。证书图标还可能显示一个红色的“X”,表示它已过期或已撤销。这些可以清理,也可以不再使用。
- 双击新下载的证书并安装。
编辑临时配置文件
- 导航到 Distribution Provisioning Profiles 部分并找到您的 Ad-Hoc Profile。
- 如有必要,编辑该配置文件以更新测试设备列表。
- 单击生成并下载新创建的供应配置文件。如果 Generate 按钮被禁用,请检查 Provisioning Profile 的名称中是否没有特殊字符,并且您至少选择了一个测试设备。
- 将新下载的配置文件拖放到 Xcode 上。任何旧版本的配置文件都可以从 Organizer 中删除。
此时,您应该重新开始工作并准备好在必要时更新代码签名设置(也就是说,如果您将它们设置为匹配特定配置文件而不是使用自动配置文件选择器选项,您需要更新该设置以指向您的配置文件的当前版本)。
同样,您很幸运,您正在采取措施解决此问题,而您的测试人员仍然能够使用您的应用程序,而不必急于完成这项工作。花点时间,确保清理旧的证书和过期的配置文件,以便 Xcode 更容易确定您希望它使用最新的配置文件。