移动策略:如何处理此服务器客户端版本排列



我们正在为客户端托管SAAS应用程序。主应用程序是一个网络应用程序,不同的客户端可以在不同的版本上。例如:

Company A  version 1.0
Company B  version 1.1

我们在App Store中也有安卓/iOS应用程序。由于这些应用程序并不总是最新的,我们在市场上也可以有多个应用程序版本。例如2.0和2.1。因此,出于兼容性原因,我们必须确保每个客户端版本都能与每个服务器版本兼容:

server 1.0 must work with client 2.0,
server 1.0 must work with client 2.1,
server 1.1 must work with client 2.0, 
and server 1.1 must work with client 2.2.

当只有2个服务器版本和2个客户端版本时,它是可管理的。然而,随着时间的推移,这个列表变得疯狂起来。我们确实有一种机制可以强制移动应用程序更新到最新版本,但这有点烦人,所以管理层不想经常这样做。

我的问题是,处理这个问题的最佳策略是什么?安卓和iOS是否具有内置功能,用户可以下载多个应用程序版本,并只根据需要启动一个?

提前谢谢。

我们遇到了类似的问题,多个客户可能部署了不同的服务器版本。

我们目前正在考虑以下几种选择:

  • 管理我们客户在云中的部署(由我们管理),以确保他们始终运行最新版本。对于想要内部部署的客户来说,这是一个问题,例如出于法规遵从性或安全原因
  • 将旧版本作为库捆绑在应用程序内部,并在运行时执行与服务器版本匹配的版本。不幸的是,这会导致混乱的构建和臃肿的应用程序包
  • 告诉用户手动安装应用程序,不要发布到应用商店。对于不太懂技术的用户来说,这既不方便又有问题
  • 通过客户的服务器部署分发应用程序。需要从未知来源在Android上安装的权限。要求客户拥有适用于iOS的iOS企业帐户(299美元/年,每位客户必须单独注册)
  • 模块化应用程序代码,以基于服务器版本启用/禁用组件或行为。如果服务器更新很少,可能会起作用,但会变得混乱,难以维护。这种情况经常发生

在每种情况下,每当公司升级服务器版本时,用户仍必须更新其应用程序。

对于我们来说,使用PhoneGap,还有一个选项:

  • 从服务器下载应用程序代码并执行。应用商店指南2.7和2.8似乎禁止这样做,但开发者协议第3.3.2条规定允许下载在web视图中运行的脚本。这意味着应用程序基本上只是一个启动器,它连接并从服务器获取脚本,然后运行它。缺点是每次运行应用程序时都需要下载和/或在应用程序的存储中使用缓存机制

你找到适合你的解决方案了吗?你选择如何处理这个问题?

最新更新