如何处理移动应用程序中过时的 api

Posted

技术标签:

【中文标题】如何处理移动应用程序中过时的 api【英文标题】:How to deal with obsolete api’s in a mobile app 【发布时间】:2018-03-22 14:29:37 【问题描述】:

虚构的情况如下:我有一个已发布到商店大约一年的移动应用程序(适用于 iosandroid)。我正在准备新版本的应用程序。后端的一些 api 已过时或弃用。

问题是应用程序的用户如果不更新应用程序到新版本,应用程序的运行会遇到问题,因为后端api已经被替换或删除。

问题是如何在成为问题之前处理这种情况? 对于不同版本的应用程序之间的过时功能,苹果或谷歌是否有任何指南?

【问题讨论】:

【参考方案1】:

@Dimitris,这里您需要对旧应用程序进行强制更新。这可以使用应用程序配置文件来完成。基本上,您将拥有一个应用配置文件,其中包含带有以下键的 JSON:


   "server":
      "app-server1-base-url":"http://",
      "status":
         "is-running":true,
         "message":"We are busy upgrading XYZ server with technology and features. We will be back soon. We apologize for the inconvenience and appreciate your patience. Thank you for using XYZ!"
      ,
      "force-update":
         "status":false,
         "message":"Please download the latest version of XYZ from App Store to continue using the app. Thank You!"
      
   

这里的“app-server1-base-url”键将是应用程序的基本 URL。您可以将所有的服务 URL 放在这个文件中。

案例一:

您的应用将在启动时检查该应用是否可以强制更新。

案例 2:

如果您想使用后端处理 API 版本控制,可以进行。

注意:请保留 AWS S3 等服务的配置文件。

【讨论】:

在 API 可用的情况下,您可以添加 @available(iOS 2.0, *) 以明智地为用户版本提供实现。【参考方案2】:

正如 Puneet Sharma 在这篇文章中所说:https://***.com/a/18756151/8354952。

几乎所有对 iOS 版本的更改都是附加的,因此 使用较低版本构建的应用程序仍可在较高版本的 iOS 上运行 版本。但我们也需要注意 API 的引入或 已弃用,现有 API 的行为可能偶尔会发生变化。

基本上旧版本的应用程序可以在最新的系统版本上运行。但是某些特殊的 api 或类可能会被弃用,这会导致一些奇怪的行为或崩溃。所以苹果或谷歌也会推荐用户更新旧版本的应用程序。

对于我们自己服务器的api,我们可以自己做应用兼容性。上传当前版本标识,服务器通过检测标识可以传输不同类型的数据。

【讨论】:

以上是关于如何处理移动应用程序中过时的 api的主要内容,如果未能解决你的问题,请参考以下文章

如何处理白标平台移动应用程序的部署?

如何处理wifi和移动数据之间的网络变化?

您如何处理 REST API 服务器中的高吞吐量函数?

如何处理特定的客户端配置和apk

跨平台颤振 - 如何处理依赖关系?

aws s3 如何处理覆盖文件和访问?