5

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

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 是否有内置功能,用户可以下载多个应用程序版本,只在需要时启动一个?

提前致谢。

4

1 回答 1

3

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

我们目前正在考虑几个选项:

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

在每种情况下,只要他们的公司升级服务器版本,用户仍然必须更新他们的应用程序。

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

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

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

于 2013-02-27T03:41:56.897 回答