簡體   English   中英

發行更新的移動應用程序版本

[英]Releasing updated mobile app version

我上周發布了一款適用於iOS和Android的移動應用程序(如果有任何不同的話,它將使用離子框架構建)。 實際上,它更像是Beta版本。 現在,已經有人安裝了該應用程序。 數量不多,但無論如何。 我現在已經開發了一個新版本。 問題是該應用程序依賴服務器。 服務器已經改變了很多事情。 因此,商店中的客戶端應用程序實際上與服務器代碼不同步。 當我發布該應用程序的更新版本時,那些使用“舊”應用程序的人很有可能獲得真正無法預測的結果。

有面對這種情況的標准方法嗎? 我無法通知用戶該應用程序已過時,只能依靠操作系統告訴用戶有可用的新版本。

這實際上是一個通用的編程問題,與任何特定平台都沒有關系。

應用程序的版本1需要服務器API的版本1,然后您需要將服務器更新為應用程序版本2的API的版本2。

在發布應用程序的版本2后,您的用戶群將同時包含應用程序的版本1和版本2。

這意味着您的服務器需要能夠響應其API的兩個版本。 有幾種可能的方法來支持這一點。

  1. 每個版本都有兩個完全不同的URL。 示例: http : //version1.server.com/ ...和http://version2.server.com/ ...僅在每個應用程序中使用正確的URL。
  2. 將版本號作為URL的一部分傳遞。 示例: http : //server.com?ver=2&other=whatever 如果URL中沒有ver參數,則可以讓服務器采用版本1。

關鍵是該應用程序的版本1已經存在。 服務器需要一段時間支持該版本的API。 服務器需要一種同時支持兩者的方法。 因此,該應用的版本2現在可以在發布之前進行修復,以與服務器上進行的任何更改一起使用,以支持其舊API和新API。

也許現在有點晚了,但是有計划:

1)讓您的服務器“存儲”該應用程序的最新版本號(我為此使用Firebase)。 當您的應用運行時,請讓其版本號與服務器上存儲的版本號進行比較。 因此,如果該應用程序已過期,則可以立即顯示一條消息,通知用戶進行更新。 (也許即使從服務器中檢索到一條自定義消息,也可以告知他們此特定更新的相對重要性)

2)如果可行,您可以確保服務器同時維護舊版本和新版本的工作代碼。 在Google Analytics(分析)上,一旦看到每個人都在使用新版本,就可以刪除舊的支持代碼。

作為應用程序開發人員,這始終是您的首要任務。 這將發生,而且也經常發生。

您應該做的是對服務器的每個請求,您應該提供應用程序版本。 然后,您的后端應使用此應用版本來解釋您的請求參數並相應地為移動應用提供服務。

在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!");
}

如果您使用了push notification ,則可以使用它,也可以切斷此應用程序的API服務以強制人們重新安裝您的應用程序。

假設您的應用程序的舊版本嘗試與服務器進行通信,則您可以在服務器上輕松檢測到該問題,並告訴用戶該應用程序需要更新(例如Whatsapp /其他消息傳遞客戶端的方式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM