我们为特定客户定制了多个应用程序。每个应用程序都有自己的“企业”发行证书“ iOS UniversalDistribution”。今天,我们收到消息,客户的所有应用程序都已停止工作,甚至无法打开。最初,我们认为这是更新后的错误,但我们注意到我们的配置文件已过期。我们没有收到任何警告,通知,电子邮件,...它们都只是停止工作。
应用程序能够使用我们构建的自定义服务进行自我更新。既然它们无法在设备上打开,我们担心我们必须在设备上手动安装新版本吗?
但是,这意味着将来还会再次发生。在研究了苹果文档之后,仍然不清楚。如果我们构建应用程序的新版本(.IPA文件)并在应用程序中推送更新,则应用程序还会相应地更新所有证书吗?因此,如果我们在几周前使用更新的配置文件进行更新,是否可以防止这种情况再次发生?
提前感谢您的反馈。
答案 0 :(得分:0)
很遗憾,现在所有已部署的应用程序都不会运行,因此您将无法使用应用程序中的自我更新逻辑来更正此问题。这取决于开发人员来跟踪过期的配置文件和证书,并确保它们根据需要进行更新。
以下所有信息均假定您正在使用企业分发配置文件来构建这些iOS应用程序。
您应该注意,有两件事可能会过期:供应配置文件和证书。
即将过期的配置文件:
通常,配置文件到期更容易处理,因为您只需要在设备上获取新的文件即可。从技术上讲,使用新的配置文件进行新的构建可以做到这一点,但是还有其他方法。例如,如果这些设备是公司的托管设备,则通常可以使用MDM软件将新的配置文件推送到设备,而无需在设备上安装新的.ipa(应用程序二进制文件)。另外,如果您在配置文件中使用通配符应用程序ID,则也可以安装具有更新的配置文件的另一台设备(尽管这有点不合常规)。长话短说:您需要在设备上获取新的配置文件。此时,可能是通过通知用户他们需要重新下载该应用程序的新版本来实现的。
过期证书
如果用于对应用程序进行代码签名的证书即将到期,则需要使用新证书生成新的二进制文件。有几种方法可以辞职现有的ipa,但是如果您有源代码,则使用新证书重新构建会更容易。好消息是,对于企业分发证书,证书仅每3年过期一次(对于配置文件,证书每1年过期一次)。因此,这不是经常需要的。但这肯定需要您重新创建一个用新证书签名的新二进制文件。
防止重复发生
如果您依赖该应用检查更新和自我更新,则需要确保新版本发布得足够好,以便用户在新版本发布和配置文件之间启动该应用。或证书到期。该时间长度取决于您的应用程序。如果这是人们每天使用的企业应用程序,则可能需要2到3周的时间(对于不在办公室的人)。如果很少使用,我会考虑在旧版本过期至少3-6个月之前部署新版本,并使用新的配置文件。这需要计划和提醒,以确保您不会错过计时窗口。
还要注意,如果使用自动代码签名,则会失去对何时生成和使用新配置文件以及证书的控制。这就是为什么我建议企业应用程序使用手动代码签名设置,以使您非常明确地使用哪些配置文件以及证书。另外,在进行构建时,请从Mac中删除所有较旧的配置文件,以确保使用正确的配置文件(您可以在Mac上随时为同一应用程序使用许多配置文件。您可以在此处找到它们:https://stackoverflow.com/a/45642752/3708242 )。假设Xcode将选择最新版本是有风险的。