发布更新的移动应用程序版本

Posted

技术标签:

【中文标题】发布更新的移动应用程序版本【英文标题】:Releasing updated mobile app version 【发布时间】:2016-05-12 16:03:52 【问题描述】:

我上周推出了一款适用于 iosandroid 的移动应用程序(如果这可以产生任何影响,它是使用 ionic 框架构建的)。实际上,它更像是一个测试版。 现在,有些人已经安装了该应用程序。不是那么大的数额,但无论如何。 我现在开发了一个新版本。问题是该应用程序依赖于服务器。服务器改变了很多东西。 所以商店中的客户端应用程序与服务器代码并不真正同步。 当我发布这个更新版本的应用程序时,那些使用“旧”应用程序的人很可能会得到不可预测的结果。

有没有标准的方法来面对这个?我无法通知用户该应用已过时,只能依靠操作系统告诉用户有可用的新版本。

【问题讨论】:

你使用推送通知吗? 【参考方案1】:

这确实是一个通用的编程问题,与任何特定平台无关。

您的应用的版本 1 需要您的服务器 API 的版本 1,然后您需要将服务器更新到其 API 的版本 2 以用于您的应用的版本 2。

在您的应用的第 2 版发布后,您的用户群将是第 1 版和第 2 版应用的混合体。

这意味着您的服务器需要能够响应其 API 的两个版本。有几种可能的方法来支持这一点。

    每个版本有两个完全不同的 URL。示例:http://version1.server.com/... 和 http://version2.server.com/... 只需在每个应用中使用正确的 URL。 将版本号作为 URL 的一部分传递。示例:http://server.com?ver=2&other=whatever。如果 URL 中没有 ver 参数,您可以让您的服务器采用版本 1。

关键是该应用程序的版本 1 已经发布。服务器需要在一段时间内继续支持该版本的 API。服务器需要一种方式来支持两者。因此,该应用的第 2 版现在可以在发布之前进行修复,以便与服务器上所做的任何更改一起支持其旧 API 和新 API。

【讨论】:

注意:方法 #1 仍然取决于拥有应用程序的版本。第 1 种方式和第 2 种方式之间的区别只是您拥有处理这两个版本的代码的地方 - 在服务器上或在应用程序上。但是,是的,两种方式都有效! :) @mray190 不是真的。该应用程序的版本 1 已编写为使用特定 URL。那是不能改变的。但是可以更改应用程序的第 2 版(在发布之前),以使用不同的 URL。所以选项 1 仍然可以完成,它不需要应用程序的版本。【参考方案2】:

现在可能有点晚了,但有计划:

1) 让您的服务器“存储”应用程序的最新版本号(我为此使用 Firebase)。当你的应用程序运行时,让它检查它的版本号和存储在服务器上的版本号。因此,如果应用程序已过期,您可以立即显示一条消息,通知用户进行更新。 (甚至可能还从服务器检索到自定义消息,告知他们此特定更新的相对重要性)

2) 如果可行,您可以确保您的服务器同时维护旧版本和新版本的工作代码。在您的 Analytics 中,一旦您看到每个人都在使用新版本,您就可以删除旧的支持代码。

【讨论】:

【参考方案3】:

作为应用开发者,这需要始终放在您的首要位置。这种情况会发生,而且经常发生。

您应该做的是对服务器的每个请求,您应该提供应用程序版本。然后,您的后端应使用此应用版本来解释您的请求参数并相应地为移动应用提供服务。

在 Android 上,您可以使用以下方式获取您的应用版本:

String vName, vCode;
try 
    PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
    vName = pInfo.versionName;
    vCode = Integer.toString(pInfo.versionCode);
 catch (Exception) 
    Log.d("App","Error!");

【讨论】:

【参考方案4】:

如果你使用了push notification,你可以使用它,或者你可以切断这个应用的API服务来强制人们重新安装你的应用。

【讨论】:

【参考方案5】:

假设您的应用程序的旧版本尝试与您的服务器通信,您可以在服务器上轻松检测到这一点,并让它告诉用户该应用程序需要更新(例如 Whatsapp/其他消息传递客户端的方式)。

【讨论】:

以上是关于发布更新的移动应用程序版本的主要内容,如果未能解决你的问题,请参考以下文章

软件更新丨移动应用框架 Ionic 4正式版发布:Ionic for Everyone

移动应用程序 - 在后端存储和版本相对静态的 json 文件

Mobilefirst 移动应用和 THyM 移动应用的建议

谷歌播放订阅和移动应用免费试用自动取消/结束

为啥移动 HTML 地理定位应用程序比本地应用程序获得更少的位置更新?

更新角度变量后,视图不会在移动应用程序上更新,尽管它适用于浏览器