APP在線升級經(jīng)驗分享
APP在線升級是一個通用功能,在產(chǎn)品的發(fā)展過程中當系統(tǒng)升級或者出現(xiàn)Bug時,需要進行升級操作。請注意,本文主要是基于我當前公司的實際需求與發(fā)展階段資源等限制,方案上有的是從簡而來。
一、場景說明
- 當系統(tǒng)升級優(yōu)化,例如功能或者交互優(yōu)化,可以提升用戶體驗,用戶可以選擇升級。
- 當系統(tǒng)出現(xiàn)嚴重Bug或者嚴重影響用戶使用的問題,強制用戶進行更新操作。
- 當系統(tǒng)上線APP后,發(fā)現(xiàn)問題,需要緊急處理,立刻停止問題版本的持續(xù)更新。
二、名詞說明
- 版本號:別名Version Name,對用戶可見,就是APP上常見的V1.0.3
- Version Code:不對用戶感知,用于APP判斷版本新舊
- 升級策略:控制APP某個版本何時以及如何升級
- 強制更新:強制用戶必須要升級APP版本,不升級不可用
三、流程
1. 整體流程
APP更新的整體流程主要是三大部分,更新APP包、發(fā)布版本、客戶端引導客戶安裝。
更新APP包:此步驟是在線下進行,包括APP的發(fā)布計劃(由產(chǎn)品主導定義新版本需要發(fā)布的內(nèi)容),研發(fā)進行開發(fā)打包,測試,然后走線下發(fā)布流程審批,審批完成之后更新iOS的APP Store和安卓應用商店內(nèi)的APP,更新都需要審核,所以發(fā)布版本都是由提前量,提前準備。軟件審核通過后不會立即發(fā)布,會和內(nèi)部管理后臺設置的發(fā)布時間同步發(fā)布。
發(fā)布版本:當發(fā)布計劃的內(nèi)容開發(fā)測試完成后,需要在管理平臺上創(chuàng)建新的版本,設置對應版本的更新策略。策略中會設置發(fā)布時間(發(fā)布會設置在未來的某個時間點),更新策略等。
客戶端引導客戶安裝:客戶端會檢測當前版本與管理平臺發(fā)布的版本是否一致,不一致會根據(jù)策略進行更新。
2. 內(nèi)部管理平臺發(fā)布新版本
當需要發(fā)布新版本,需要在管理平臺發(fā)布新版本,管理平臺會按照上面的流程進行發(fā)布。
3. 移動端升級流程
當用戶啟動APP時,APP會對比當前版本與管理平臺發(fā)布的版本,如果不是最新版本,會去比較當前版本與最新版本的Version Code,決定是否要進行升級提示(更詳細的VersionCode作用請查看下方功能設計中版本管理功能說明),如果當前版本VersionCode比最新版本小,根據(jù)更新策略進行強制更新或者讓用戶選擇是否更新。
4. 異常流程
當前的異常流程只考慮發(fā)布后發(fā)現(xiàn)最新版包有問題,緊急停止當前發(fā)布版本包,此操作只會阻止還未更新升級到問題版本的客戶端升級,已經(jīng)升級過的客戶端此流程無法處理,只能緊急修復重新發(fā)布更新版本強制用戶更新.
四、涉及業(yè)務
通過上述的升級流程,可以梳理出需要設計到的業(yè)務平臺和功能點內(nèi)部
管理平臺:新增并發(fā)布版本、緊急停用版本
移動端:檢查比較版本信息、提示更新、強制更新、可選更新
五、功能設計
1. 內(nèi)部管理平臺
管理平臺主要是維護管理APP的版本和每個版本的更新策略。已經(jīng)異常情況下的緊急發(fā)布和緊急停用。
版本列表-發(fā)布、停用版本
版本列表會顯示所有的版本記錄,列表顯示字段如上圖所示。
版本區(qū)分為iOS和安卓,兩者獨立互不影響。安卓和iOS邏輯都是一致的。同時只能有一條記錄處于發(fā)布狀態(tài),當前處于發(fā)布狀態(tài)的版本即可理解為最新版本。
針對每條發(fā)布記錄,根據(jù)狀態(tài)可以進行不同操作,已停用的版本,可以查看二維碼下載APP包,已發(fā)布的版本可以查看二維碼和停用,未生效的版本可以查看二維碼、發(fā)布和刪除。
在進行發(fā)布和停用操作時,會強制操作人填寫停用或者發(fā)布的原因。
新增版本
軟件創(chuàng)建新版本的時候,需要上傳APP的包,版本號和Version Code通過上傳的包系統(tǒng)自動識別。版本號和Version Code全局保持唯一。
更新策略:可以選擇強制更新和非強制更新,強制更新時,用戶必須要更新,否則不能使用APP,非強制更新時,只要用戶的版本高于最低兼容版本,用戶可以選擇不升級,不影響使用。
最低兼容版本:選擇已經(jīng)發(fā)布過的所有版本,當客戶端的版本低于最低兼容版本時,會強制用戶升級到當前版本。此產(chǎn)品是B端產(chǎn)品,并且處在發(fā)展階段,當前公司沒有足夠的人力資源可以滿足兼容遠古版本的能力,所以增加了最低兼容版本字段,可以幫助后期的接口變動等問題不會影響使用。
更新提示用于在移動端升級時進行提示。
預計發(fā)布時間設定該版本什么時候發(fā)布,達到時間系統(tǒng)會自動停用當前已發(fā)布版本并發(fā)布此版本,發(fā)布時間做了操作限制,只能選擇第二天的時間,防止誤操作,如果需要立即發(fā)布,可以創(chuàng)建完成后在列表進行發(fā)布操作。
客戶端
強制更新
客戶端打開應用時,檢測到有新版本并且是強制更新,會彈窗提示用戶,此時用戶只能點擊立即更新。用戶點擊更新后,優(yōu)先在應用內(nèi)從平臺下載包安裝,如果手機有限制,不允許應用內(nèi)安裝,點擊后跳轉對應的應用商店更新,例如蘋果跳轉到APP Sotre進行升級。
可選更新
客戶端打開應用時,檢測到可選更新,彈窗提示用戶,此時用戶可以選擇立即更新,也可以選擇忽略更新。用戶點擊更新后,優(yōu)先在應用內(nèi)從平臺下載包安裝,如果手機有限制,不允許應用內(nèi)安裝,點擊后跳轉對應的應用商店更新。用戶點擊忽略更新后,此版本不再提示用戶。
提醒機制當前從簡而作,只在第一次檢測到時提示用戶。
手動檢查更新
用戶可以在我的-關于APP中點擊版本更新,當有新版本時彈窗提示用戶更新內(nèi)容,用戶選擇更新在后臺進行更新不影響操作。如果當前版本是最新版本,點擊時提示用戶當前版本為最新版本。
六、總結
以上是關于APP在線升級的功能設計,上述設計是基于我當前管理產(chǎn)品的實際情況而來,有很多功能點并不完善,在用戶體驗上也有所欠缺,后續(xù)在產(chǎn)品的迭代中也會對此進行優(yōu)化。
本次編寫此文章一是為了記錄學習,二是希望能給需要的人一點靈感和思路。正如本人名稱“菜雞弟弟”,歡迎各位產(chǎn)品經(jīng)理一起交流溝通。
本文由 @菜雞弟弟 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務
- 目前還沒評論,等你發(fā)揮!