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

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

Company A  version 1.0
Company B  version 1.1

我们在App Store中也有Android / 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个客户端版本时,它是可管理的.然而随着时间的推移,列表变得疯狂.我们确实有一种机制可以强制移动应用程序更新到最新版本,但它有点烦人,因此管理人员不希望经常这样做.

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

提前致谢.

最佳答案 对于可能部署了不同服务器版本的多个客户,我们遇到了类似的问题.

我们目前正在考虑一些选择:

>管理我们客户在云中的部署(由我们管理),以确保他们始终运行最新版本.对于需要内部部署的客户而言存在问题,例如:出于合规或安全原因.
>将应用程序内部的旧版本作为库捆绑,并在运行时执行与服务器版本匹配的版本.不幸的是导致凌乱的构建和臃肿的应用程序包.
>告诉用户手动安装应用程序,不要发布到应用程序商店.对于技术含量较低的用户来说,不方便且有问题.
>通过客户的服务器部署分发应用程序.需要在Android上安装来自未知来源的权限.要求客户拥有iOS的iOS企业帐户(每年299美元,每个客户必须单独注册).
>模块化应用程序代码,以根据服务器版本启用/禁用组件或行为.如果服务器更新很少,可能会工作,但会变得混乱,很难维持它经常发生.

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

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

>从服务器下载应用程序代码并执行它. App store guidelines 2.7和2.8似乎禁止这样做,但开发人员协议条目3.3.2表示允许下载在Web视图中运行的脚本.这意味着该应用程序基本上只是一个启动器,它连接并从服务器获取脚本,然后运行它.缺点是每次运行应用程序时都需要下载和/或应用程序存储中的缓存机制.

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

点赞