更新内部应用程序——iOS 企业开发者计划
Posted
技术标签:
【中文标题】更新内部应用程序——iOS 企业开发者计划【英文标题】:Update In-House Apps -- iOS Enterprise Developer Program 【发布时间】:2012-10-20 17:09:25 【问题描述】:我正在寻找有关 iOS 企业开发人员计划的信息。据我所知,内部分发允许公司在不知道设备 UDID 的情况下在内部分发 ios 应用程序(与广告发生的情况不同-hoc 分布)。使用这些配置文件构建的应用技术上可以安装在任何 iOS 设备上(设备数量不受限制),但许可协议规定我们不能将企业应用分发给公司以外的任何人。 p>
据我了解,我们可以通过企业内部所需的任何媒介分发应用程序。在我们的例子中,我们希望将.ipa
及其.plist
放在我们的Intranet 上(通过身份验证进行保护)。我们的用户可以使用任何 iOS 设备浏览到该站点,输入他们的凭据,单击链接并安装应用程序。太好了。
但是更新是如何工作的?我找不到有关此主题的信息。如果我创建应用的新版本,所有设备都会自动更新而无需我的干预?
【问题讨论】:
【参考方案1】:更新您的应用后,将其上传到与以前相同的位置。所以所有用户只需要重新安装。然后它会与应用程序中的新更改正常工作。
【讨论】:
【参考方案2】:其他选项包括使用 MDM(移动设备管理)或 MAM(移动应用程序管理)解决方案。
MDM 解决方案允许已“注册”的用户推送新更新,但是,用户必须请求更新并提示手动安装它们。除非安装额外的客户端应用程序,否则用户也无法接收推送通知消息。
MAM 解决方案可以为整个应用生命周期(包括更新)提供支持。提供此功能的一个供应商解决方案是 Apperian EASE,它允许组织中的用户安装和运行内部应用程序。如需更多信息,请参阅http://www.apperian.com。
EASE 可以通过推送通知通知所有已安装应用程序的用户有新版本(更新)(这通过自定义本机应用程序目录发生)。
开发人员可以使用 EASE SDK 向服务器发出查询,以查看是否有新的更新可用和/或需要,如果是,则自动安装更新。 EASE SDK 文档位于https://apperian.jira.com/wiki/display/pub/EASE+SDK+Guide。
【讨论】:
谢谢。我不知道 EASE,这似乎很有趣。只是最后一个问题。当您说“[使用 MDM] 用户也无法接收推送通知消息,除非他们安装其他客户端应用程序”您的意思是 MDM 解决方案阻止推送通知工作还是 MDM 解决方案不要(自动)推送更新通知?【参考方案3】:更新有两种不同的场景 - 1) 服务器驱动的更新,您不需要修改代码。在这种情况下,您的应用程序应该足够智能,可以轮询服务器以获取任何更新、下载它们并重新配置自身。我正在为我们的原生应用程序这样做。 2)您已经更新了代码。在这种情况下,您需要在每台设备上重新安装该应用程序以进行更新。
在您的情况下,我认为您正在寻找方案 2 的解决方案。您可以实现类似于 Apple 在向 Appstore 提交更新版本时所做的事情。他们在更新部分显示更新的应用程序,然后您重新安装应用程序。您可以在您的应用程序中设置一些部分来检查是否有更新并使用您的 html 链接调用 iTunes 服务,这将直接向用户弹出要求安装更新的应用程序的窗口。第二个选项,您可以在使用更新的版本信息更新 .ipa 和 .plist 文件后使用推送通知。
【讨论】:
感谢您的回答。是的,我指的是场景 2。据我了解,因此,没有自动更新内部应用程序的方法(例如在 App Store 中我只需提交新版本)。只是一个问题:如果我按照您的建议(即提示用户安装更新的应用程序),应用程序数据会保留吗? (该应用使用带有一些偏好的内部核心数据数据库。) 是 应用程序数据将被保留。我们的应用程序有相同的要求。我在 UserDefaults 中存储了许多不受更新应用程序影响的设置。 AppStore 更新也是如此。 我确认。在In-House App Development Accelerator Guide
文件中,Apple 说:“您需要通知员工更新并指示他们安装应用程序。如果在 Xcode 中分配给应用程序的应用程序标识符未更改,它将将该应用程序识别为现有应用程序并安装更新,同时保留本地存储的应用程序数据或首选项。为了更方便,考虑在应用程序中开发一个函数,在运行时联系服务器以获取更新。"
上述解决方案我的意思是第二种情况对我有用。但我想知道是否有本地数据库更改我们如何管理它。我们将 sqlite 用于本地数据库。以上是关于更新内部应用程序——iOS 企业开发者计划的主要内容,如果未能解决你的问题,请参考以下文章