过期的配置文件更新

Bar*_*ens 1 ios provisioning-profile enterprise-distribution

我们为特定客户定制多个应用程序。每个应用程序都有自己的“企业”分发证书“iOS UniversalDistribution”。今天我们收到消息称我们客户的所有应用程序都已停止工作,甚至无法打开。起初我们以为这是更新后的错误,但我们注意到我们的配置文件已经过期。我们没有收到任何警告、通知、电子邮件……它们都停止工作了。

应用程序能够使用我们构建的自定义服务进行自我更新。既然它们无法在设备上打开,我们担心我们必须在设备上手动安装新版本?

但这意味着将来这种情况还会再次发生。研究了苹果文档后,仍有一些不清楚的地方。如果我们构建应用程序的新版本(.IPA 文件)并在应用程序中推送更新,应用程序是否也会相应地更新所有证书?因此,如果我们在几周前使用更新的配置文件进行更新,是否可以防止这种情况再次发生?

预先感谢您的反馈。

wot*_*tle 6

因此,不幸的是,现有的已部署应用程序现在都不会运行,因此您将无法使用应用程序中的自更新逻辑来纠正此问题。这取决于开发人员跟踪过期的配置文件和证书并确保它们根据需要进行更新。

以下所有信息均假设您使用企业分发配置文件来构建这些 iOS 应用程序。

您应该注意的是,有两件事可能会过期:配置文件和证书。

即将过期的配置文件:

通常,配置配置文件过期更容易处理,因为您只需要在设备上获取新的配置文件即可。从技术上讲,使用新的配置文件进行新的构建就可以做到这一点,但还有其他方法。例如,如果这些是托管公司设备,您通常可以使用 MDM 软件将新配置文件推送到设备,而不需要在设备上安装新的 .ipa(应用程序二进制文件)。另外,如果您在配置文件中使用通配符应用程序 ID,则使用较新的配置文件安装另一台设备也可以(尽管这有点不正统)。长话短说:您需要在设备上获取新的配置文件。此时,您可能会通知用户他们需要重新下载应用程序的新版本。

证书即将到期

如果用于对应用程序进行代码签名的证书即将过期,您将需要使用新证书生成新的二进制文件。有多种方法可以对现有的 ipa 进行签名,但如果您有源代码,则使用新证书重新构建会更容易。好消息是,企业分发证书的证书每 3 年过期一次(而配置文件的证书每 1 年过期一次)。所以这并不经常需要。但这肯定需要您重新创建使用新证书签名的新二进制文件。

防止这种情况再次发生

如果您依靠应用程序来检查更新和自我更新,则需要确保新版本提前发布得足够好,以便用户能够在新版本发布与配置文件或证书到期之间的时间内启动应用程序。该时间长度取决于您的应用程序。如果它是人们每天使用的企业应用程序,那么您可能需要 2 到 3 周的时间(对于不在办公室的人)。如果很少使用,我会考虑部署一个新版本,并在旧配置文件到期之前至少提前 3-6 个月使用新的配置文件。这需要计划和提醒来确保您不会错过时间窗口。

另外值得注意的是,如果您使用自动代码签名,您将失去对何时生成和使用新配置文件以及证书的一些控制。这就是为什么我建议企业应用程序使用手动代码签名设置,以便您可以非常明确地使用哪些配置文件以及证书。另外,在进行构建时,请从 Mac 中删除所有旧的配置文件,以确保您使用正确的配置文件(您可以在任何给定时间在 Mac 上为同一应用程序拥有多个配置文件。您可以在此处找到它们:https://stackoverflow .com/a/45642752/3708242)。假设 Xcode 会选择最新的一个是有风险的。