- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们为特定客户定制了多个应用程序。每个应用程序都有自己的“企业”分发证书“iOS UniversalDistribution”。今天我们收到消息称我们客户的所有应用程序都已停止工作,甚至无法打开。起初我们以为这是更新后的错误,但我们注意到我们的配置文件已经过期。我们没有收到任何警告、通知、电子邮件……它们都停止工作了。
应用程序能够使用我们构建的自定义服务进行 self 更新。既然它们无法在设备上打开,我们担心我们必须在设备上手动安装新版本?
但这意味着将来这种情况还会再次发生。研究了苹果文档后,仍有一些不清楚的地方。如果我们构建一个新版本的应用程序(.IPA 文件)并在应用程序中推送更新,应用程序是否也会相应地更新所有证书?因此,如果我们在几周前使用更新的配置文件进行更新,是否可以防止这种情况再次发生?
提前感谢您的反馈。
最佳答案
因此,不幸的是,现在所有已部署的应用程序都不会运行,因此您将无法使用应用程序中的 self 更新逻辑来更正此问题。这取决于开发人员跟踪过期的配置文件和证书并确保它们根据需要进行更新。
以下所有信息均假设您使用企业分发配置文件来构建这些 iOS 应用程序。
您应该注意的是,有两件事可能会过期:配置文件和证书。
配置文件即将过期:
通常,配置配置文件过期更容易处理,因为您只需要在设备上获取新的配置文件即可。从技术上讲,使用新的配置文件进行新的构建就可以做到这一点,但还有其他方法。例如,如果这些是受管理的公司设备,您通常可以使用 MDM 软件将新的配置文件推送到设备,而无需在设备上安装新的 .ipa(应用程序二进制文件)。此外,如果您在配置文件中使用通配符应用程序 ID,则安装具有较新配置文件的另一台设备也可以工作(尽管这有点不正统)。长话短说:您需要在设备上获取新的配置文件。此时,您可能会通知用户他们需要重新下载应用程序的新版本。
过期证书
如果用于对应用程序进行代码签名的证书即将过期,您将需要使用新证书生成新的二进制文件。有多种方法可以对现有的 ipa 进行签名,但如果您有源代码,则使用新证书重新构建会更容易。好消息是,企业分发证书的证书每 3 年才过期一次(而配置文件每 1 年一次)。所以这不是经常需要的。但这肯定会要求您重新创建一个使用新证书签名的新二进制文件。
防止这种情况再次发生
如果您依靠该应用检查更新和 self 更新,您需要确保新版本提前发布得足够好,以便用户在新版本发布和配置文件发布之间的时间内启动该应用或证书过期。此时间长度取决于您的应用程序。如果它是人们每天使用的企业应用程序,那么您可能需要 2 到 3 周的时间(对于不在办公室的人)。如果很少使用,我会考虑部署一个新版本,在旧版本到期前至少提前 3-6 个月使用新的配置文件。这需要计划和提醒来确保您不会错过时间窗口。
另请注意,如果您使用自动代码签名,您将无法控制何时生成和使用新配置文件以及证书。这就是为什么我建议企业应用程序使用手动代码签名设置,以允许您非常明确地使用哪些配置文件以及证书。另外,在进行构建时,请从 Mac 中删除所有旧的配置文件,以确保您使用正确的配置文件(您可以在任何给定时间在 Mac 上为同一应用程序拥有多个配置文件。您可以在此处找到它们: https://stackoverflow.com/a/45642752/3708242 )。假设 Xcode 会选择最新的一个是有风险的。
关于ios - 过期的配置文件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56148829/
当您在 memcached 中设置 key 过期时,它实际上是在过期时被删除,还是在请求 key 时被删除(get)并且有效期已过。换句话说,过期会自动从 memcached 中删除值,还是简单地将其
Microsoft 是否已将客户端 secret 的有效期更改为最长 2 年?不能再选择“从不”了吗? 最佳答案 我自己也遇到了这个问题。您可以使用Powershell设置添加2年以上的凭据。所以我猜
我正在尝试对我网站上的 csv 文件强制禁止缓存。 我根据 apache 的文档将这些行添加到 httpd.conf: ExpiresActive On ExpiresDefault A0 Expi
我对 Cookie 不熟悉,希望让此 Cookie 在我的注销页面上过期 这是我设置 cookie 的位置: setcookie("loggood", "YES", $expire, "/",
MySQL 是否有某种功能可以在 x 秒后使特定行过期? 例如,我必须以下数据库: users id - integer name - string subscriptions
我的机器上安装了 Matlab Compiler Runtime。它工作正常,但现在当我运行一些需要它的代码时,我得到了这个错误: Failed to initialize MCR Instance:
当我从 PayPal 收到 IPN 时,我不想立即处理它,而是将消息排队,然后使用调度程序处理它。 因此,有一点让我担心 - 如果我将一条消息排队并只处理它(包括'_notify-validate'验
关于 PHP session 过期的问题。 如果该用户有一段时间不活动(出于测试目的,5 秒),我需要我的服务器丢弃 session 信息。 我看过this question尤其是 Gumbo(+28
我有一个 session ,在 30 分钟不活动后或 23.4 小时后被销毁。 我遇到的问题是无论事件如何, session 都会在 30 分钟后被销毁。因此,如果用户在 23.4 小时内一直处于事件
我一直在网上搜索并找到了许多奇怪的答案,而且我几乎尝试了所有这些答案。我的问题是这样的。我的登录页面包含: FormsAuthenticationTicket ticket = new FormsAu
我正在构建一个表单,我必须将数据存储在 HTML5 的 sessionStorage 中 我不知道 sessionStorage 何时过期。谁能告诉我 sessionStorage 的过期时间? 最佳
在我的应用程序中,我有一个必须始终有效的访问 token (Spotify 的)。当此访问 token 过期时,应用必须每 60 分钟刷新一次 token 端点并获取另一个访问 token 。 Aut
我们的办公室有一个简单的闭路电视系统,可以显示我们每个安全摄像头的实时图像。闭路电视系统没有 API 或任何提取实时图像的方法。但是,您可以通过创建带有图像链接的基本 HTML 页面从另一个浏览器查看
我正在基于DotNetOpenAuth实现OAuth2授权/资源服务器。我的服务器将发出生命周期很长的访问 token 。这些 token 将在iOS设备上使用。我看到的流程是这样的:1)要求用户在i
请帮助我在 Varnish 配置中添加过期 header 。 max_age 已在 vcl_fetch 中定义,需要根据 max_age 添加 expires header。 最佳答案 通常不需要设置
我正在开发一个必须使用 session 超时的应用程序。 问题是用户经常错过 session 超时并丢失数据。我已经在 javascript 中实现了一个小型 session 管理器,如果浏览器中有一
我有一个应用程序,可以从我的Instagram帐户中提取数据。 我曾经授权过此应用一次,并获得了访问 token 。但是我很担心 如果该 token 过期怎么办?我是否应该在每次 token 到期?
我在数据表中有多个复选框,它们具有一个名称和不同的值,我可以通过以下代码为所有选中的复选框存储 cookie $(document).ready(function(){ $('i
hibernate 3.3.x、ehcache 2.2.x The following error occurs, when I try to publish a lots of users in a
在 Azure 门户的通知中心的“配置”选项卡上,我能够生成主键和辅助键。我了解这些是获得对 Azure API 的编程访问权限所必需的 - 允许我的客户端应用程序创建注册并发送消息。 谁能解释一下:
我是一名优秀的程序员,十分优秀!