更新内部应用程序 -- iOS企业开发者计划

13

我正在寻找关于的信息。据我所知,内部分发允许公司在不知道设备UDID(与临时分发不同)的情况下在内部分发iOS应用程序。使用这些配置文件构建的应用程序可以在任何iOS设备上(没有设备数量限制)技术上安装,但许可协议说我们不能向公司外部分发企业应用程序。

据我所知,在企业内部,我们可以通过任何媒介分发应用程序。在我们的情况下,我们想要将 .ipa 和其 .plist放在内网中(通过身份验证进行保护)。我们的用户可以使用任何iOS设备浏览该站点,输入其凭据,单击链接并安装应用程序。这很好。

但是更新如何工作?我找不到关于此主题的信息。如果我创建了应用程序的新版本,所有设备是否都会自动更新,无需我的干预?

3个回答

9
更新有两种不同的情况 - 1)服务器驱动更新,您无需修改代码。在这种情况下,您的应用程序应该足够智能,以轮询服务器是否有更新,下载它们并重新配置自身。我们的本地应用正在执行此操作。2)您已经更新了代码。在这种情况下,您需要重新安装每个设备上的应用程序才能更新它。
针对您的情况,我认为您正在寻找方案2的解决方法。您可以实现类似于当您向Appstore提交更新版本时Apple所做的事情。他们会在更新部分中显示更新的应用程序,然后您需要重新安装应用程序。您可以在应用程序中添加某些部分,检查是否有更新,并调用iTunes服务以获取您的HTML链接,该链接将直接向用户弹出窗口,要求安装更新的应用程序。第二个选项是在更新.ipa和.plist文件以及更新版本信息之后使用推送通知。

感谢您的回答。是的,我指的是第二种情况。据我所知,没有自动更新内部应用程序的方式(就像在App Store中提交新版本那样)。只是一个问题:如果我按照您的建议(即提示用户安装更新的应用程序),应用程序数据是否会被保留?(该应用程序使用带有一些首选项的内部Core Data数据库。) - Dev
1
是的,应用程序数据将被保留。我们的应用程序有相同的要求。我在UserDefaults中存储了许多设置,这些设置不会受到更新应用程序的影响。这也适用于AppStore更新。 - Paresh Masani
3
我确认。在苹果公司的“In-House App Development Accelerator Guide”文件中,他们说:“您需要通知员工更新并指示他们安装应用程序。如果在Xcode中分配给应用程序的应用程序标识符未更改,则它将将该应用程序识别为现有应用程序并在保留本地存储的应用程序数据或首选项的同时安装更新。为了更方便,建议开发一个在运行时联系服务器更新的功能。” - Dev
1
上述解决方案,也就是第二种情况对我有用。但我想知道如果有本地数据库更改,我们该如何管理。我们使用sqlite作为本地数据库。 - anoop

5
其他选项包括使用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

1
谢谢。我不知道EASE,看起来很有趣。最后一个问题。当你说“_[使用MDM]用户也没有办法接收推送通知消息,除非他们安装额外的客户端应用程序_]”时,你是指MDM解决方案会阻止推送通知工作,还是MDM解决方案不会(自动)推送更新的通知? - Dev

0

更新您的应用程序后,将其上传到与之前相同的位置。因此,所有用户只需要重新安装即可。然后,应用程序将能够正常运行并展现新的更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接