移動(dòng)互聯(lián)網(wǎng)行業(yè),雙方拼的是時(shí)間和速度树瞭,新上線產(chǎn)品每月甚至更短時(shí)間更新迭代一次拇厢,以便打響品牌,快速占領(lǐng)市場(chǎng)晒喷。小步快跑孝偎,快速迭代也是互聯(lián)網(wǎng)最流行的開發(fā)思維,而app升級(jí)系統(tǒng)是版本更新迭代最基礎(chǔ)的系統(tǒng)厨埋。
先說下app的版本升級(jí)流程(以閨蜜圈為例)邪媳,以便整體了解版本升級(jí)所涉及到的各個(gè)環(huán)節(jié)的情況:
一、渠道打包
每當(dāng)發(fā)新版本時(shí)荡陷,Android客戶端會(huì)被分發(fā)到各個(gè)應(yīng)用市場(chǎng)雨效,比如應(yīng)用寶,360手機(jī)助手等废赞。為了統(tǒng)計(jì)這些市場(chǎng)的效果(活躍數(shù)徽龟,下單數(shù)等),需要有一種方法來唯一標(biāo)識(shí)它們唉地【莼冢客戶端需通過渠道號(hào)來區(qū)分不同的市場(chǎng)传透,客戶端訪問API時(shí)會(huì)在請(qǐng)求參數(shù)中帶上渠道號(hào),以便后臺(tái)接下來計(jì)算不同渠道的效果极颓。以閨蜜圈安卓渠道包為例:
①1001001朱盐,首位代表1安卓,2代表ios菠隆。
②1001001兵琳,第2-4位代表推廣的大渠道如1002001-應(yīng)用寶、1003001-360市場(chǎng)推廣等
③1001001骇径,最后3位代表各渠道版本的子推廣版本躯肌,比如1004001自有渠道的下載官網(wǎng),1004002自有渠道的兄弟app推廣位破衔。
目前很多應(yīng)用市場(chǎng)支持打增量包更新清女,建議打成增量包,減少用戶更新成本晰筛。相比安卓端嫡丙,蘋果端新版在app store發(fā)布后,APP圖標(biāo)會(huì)有new的標(biāo)識(shí)传惠,用戶升級(jí)機(jī)率會(huì)大很多迄沫。
二稻扬、apk卦方、api文件的命名規(guī)范和不同類型安裝包的管理
開發(fā)者環(huán)境下打包的安裝包圖標(biāo)和命名要和線上環(huán)境下的應(yīng)用區(qū)別開。在后續(xù)測(cè)試時(shí)就不會(huì)因?yàn)楦鱾€(gè)版本搞的手忙腳亂泰佳。接著說說apk盼砍、api文件的命名規(guī)范和不同類型安裝包的管理:
①正式版:發(fā)布到各大市場(chǎng)的正式的版本,在經(jīng)過全面測(cè)試后逝她,排除一切不穩(wěn)定bug浇坐,此時(shí)打包的正式版仍然需要經(jīng)測(cè)試人員的最后把關(guān),最后一定要保證的是黔宛,準(zhǔn)備上線的APK近刘、API文件是經(jīng)過測(cè)試人員的最后把關(guān)的,否則如果開發(fā)如果做了改動(dòng)不通知測(cè)試和產(chǎn)品人員臀晃,上線后出了問題再改就晚了觉渴。
②預(yù)發(fā)布:發(fā)布到外網(wǎng)環(huán)境供測(cè)試驗(yàn)證的版本。
③測(cè)試版:發(fā)布到內(nèi)網(wǎng)環(huán)境供調(diào)試徽惋、測(cè)試的版本案淋。
版本號(hào)的管理,前期就要搞清楚险绘,否則后面產(chǎn)品上線后踢京,出現(xiàn)bug要改進(jìn)誉碴,或者添加新功能后對(duì)老版本是否有影響,這個(gè)時(shí)候版本號(hào)管理的好就會(huì)起到很大的作用瓣距,一方面你可以隨時(shí)找出之前上線過的apk黔帕、API文件,另一方面面對(duì)不斷修改打包的文件不至于把自己搞混蹈丸。
三蹬屹、版本升級(jí)類型
渠道打包更多是滿足APP推廣,擴(kuò)大APP曝光度需要白华,為提醒用戶更新APP版本慨默,更多需要APP的自檢升級(jí)。
1.自檢升級(jí)是內(nèi)置在APP里的功能弧腥,在我看來分為啟動(dòng)升級(jí)厦取、推送升級(jí)和檢測(cè)升級(jí)。
①啟動(dòng)升級(jí):用戶進(jìn)入APP主界面管搪,APP向服務(wù)器檢測(cè)新版虾攻,如有則彈出升級(jí)提示框,有【稍后再說】更鲁、【不再提示】霎箍、【立即升級(jí)】選項(xiàng),勾選【不再提示】則不再提示該版的更新澡为,避免騷擾用戶漂坏,點(diǎn)擊【立即升級(jí)】,安卓端直接下載新包媒至,蘋果端則跳轉(zhuǎn)到app store顶别。
②推送升級(jí):服務(wù)器主動(dòng)向APP發(fā)送推送升級(jí)消息或APP向服務(wù)器檢測(cè)到新版,在手機(jī)通知欄顯示升級(jí)推送消息拒啰,點(diǎn)擊消息打開app并彈出升級(jí)提示框驯绎。
③檢測(cè)升級(jí):提醒用戶有升級(jí)的版本,提供用戶另一個(gè)升級(jí)的機(jī)會(huì)谋旦。這個(gè)操作一般放在設(shè)置頁(yè)或關(guān)于頁(yè)剩失。
2.強(qiáng)制升級(jí)
一定要預(yù)留強(qiáng)制升級(jí)功能,以防舊版存在嚴(yán)重漏洞册着,強(qiáng)制用戶升級(jí)版本拴孤,升級(jí)提示框僅有【立即升級(jí)】操作,只有升級(jí)后才能進(jìn)入應(yīng)用指蚜。
WiFi條件下自動(dòng)下載安裝包
用戶打開app看到升級(jí)彈層時(shí)乞巧,75%+直接點(diǎn)擊【稍后再說】。要升級(jí)版本多煩的事情啊摊鸡,要下載(最耗時(shí)間)绽媒、退出應(yīng)用蚕冬、安裝... 360這個(gè)細(xì)節(jié)做的就不錯(cuò):wifi條件下,當(dāng)你選擇【稍后再說】時(shí)默默地幫你把安卓包下了是辕,下次升級(jí)彈層提醒你直接安裝囤热。
3.增量更新
有些開源庫(kù)支持打增量更新包,用戶不需下載全包获三,節(jié)省時(shí)間旁蔼,也是一種較好的做法,根據(jù)觀測(cè)疙教,使用的APP并不多棺聊,可能是開發(fā)成本高吧。
四贞谓、版本升級(jí)設(shè)計(jì)
1.在App客戶端埋下升級(jí)彈層邏輯限佩,升級(jí)彈層內(nèi)容由后臺(tái)配置生效。
2.安卓版本和ios版本分開配置
3.配置推送用戶范圍(渠道號(hào)):
①渠道號(hào):可配置推送到指定渠道
4.升級(jí)彈層配置(在以上推送用戶范圍下)
①將要升級(jí)為的版本名:
②更新特性描述:
③安裝包大小:
④是否強(qiáng)制升級(jí)(設(shè)置低于或等于某個(gè)版本的強(qiáng)制升級(jí)):
⑤是否同時(shí)更新其它應(yīng)用:如果是裸弦,需要配置如下字段祟同,默認(rèn)勾選,用戶可手動(dòng)勾選去打掉理疙。(安卓)
a.其它應(yīng)用名稱:
b.其它安裝包地址晕城;
5.強(qiáng)制升級(jí):只顯示立即更新按鈕,每次進(jìn)入app都彈出升級(jí)彈層窖贤。
6.非強(qiáng)制升級(jí):升級(jí)彈層彈出次數(shù)砖顷,用戶每次進(jìn)入應(yīng)用如果未升級(jí)都彈層提示;
五主之、版本升級(jí)注意點(diǎn)
1.安卓端-新包升級(jí)后择吊,用戶的歷史賬號(hào)、配置等數(shù)據(jù)不能丟失槽奕;
2.安卓端-新版要向下兼容,防止用戶裝回舊版后報(bào)錯(cuò)崩潰房轿,如新版把存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)改了粤攒,舊版讀取失敗而崩潰;
3.安卓端-升級(jí)后囱持,刪除安裝包夯接,減少占用存儲(chǔ)空間;
4.服務(wù)器定制好升級(jí)策略纷妆,批量分類更新盔几,以防全量用戶擁入,把服務(wù)器撐爆掩幢;
5.更新特性描述要吸引人逊拍,手機(jī)內(nèi)存上鞠、儲(chǔ)存寸土寸金的年代,每更新一個(gè)版本意味著占用運(yùn)行內(nèi)存芯丧、存儲(chǔ)空間變大芍阎,導(dǎo)致手機(jī)卡,所以更新特性描述一定要吸引人缨恒,讓用戶有動(dòng)力更新谴咸。
總之,每一個(gè)版本都必須嚴(yán)格測(cè)試驗(yàn)證升級(jí)系統(tǒng)有效性骗露,如果升級(jí)系統(tǒng)失效就是說這個(gè)版本死掉了岭佳,這個(gè)版本獲得的用戶也就全打水漂了。