本文更新于2017年11月21日汗洒。
注意事項(xiàng):
- 支持多渠道包僅選用某個(gè)渠道包的補(bǔ)丁,只需要保證變化相同即可父款,不過對于不同的apk包最好進(jìn)行全面的測試溢谤。
- 發(fā)布前請嚴(yán)格按照:掃碼內(nèi)測 => 灰度發(fā)布 => 全量發(fā)布的流程進(jìn)行,以保證補(bǔ)丁包能夠正常在所有Android版本的機(jī)型上生效憨攒。
- 補(bǔ)丁狀態(tài):
- 等待中:補(bǔ)丁上傳成功世杀,等待操作。
- 已灰度:補(bǔ)丁正在進(jìn)行灰度發(fā)布浓恶。
- 已發(fā)布:補(bǔ)丁已全量發(fā)布至所有設(shè)備玫坛。
- 已停止:補(bǔ)丁發(fā)布行為已暫停。
灰度發(fā)布
在應(yīng)用版本詳情頁包晰,點(diǎn)擊補(bǔ)丁版本列表里的【查看詳情】,進(jìn)入 補(bǔ)丁詳情頁炕吸。
在剛剛上傳完補(bǔ)丁后伐憾,補(bǔ)丁處于 等待中 的狀態(tài),勾選 灰度發(fā)布赫模。
設(shè)置完設(shè)備數(shù)树肃,客戶端拉取補(bǔ)丁會消耗該設(shè)備數(shù),達(dá)到灰度設(shè)備數(shù)后瀑罗,灰度補(bǔ)丁自動(dòng)置為停止?fàn)顟B(tài)胸嘴。
設(shè)備數(shù):指設(shè)備請求更新該補(bǔ)丁的次數(shù)雏掠,并不等于絕對設(shè)備數(shù)。
例如:1個(gè)設(shè)備請求了2次更新該補(bǔ)丁劣像,則會消耗掉2的設(shè)備數(shù)乡话。
-
確認(rèn)發(fā)布
點(diǎn)擊【確認(rèn)發(fā)布】,補(bǔ)丁狀態(tài)為 已灰度 耳奕,進(jìn)入灰度發(fā)布狀態(tài)绑青。
灰度發(fā)布狀態(tài)
這時(shí),當(dāng)用戶打開客戶端屋群,就會拉取線上的補(bǔ)丁闸婴,修復(fù)程序。
還記得代碼中的queryAndLoadNewPatch()方法嗎芍躏,它的作用去看系列第二篇末尾的sample邪乍。
- 成功推送設(shè)備數(shù):每當(dāng)有設(shè)備發(fā)起一次更新請求,且補(bǔ)丁下載成功对竣,則記為一次成功推送溺欧。
- 累計(jì)加載設(shè)備數(shù):每當(dāng)有設(shè)備成功加載該補(bǔ)丁,則記為一次累計(jì)加載柏肪。
注:
· 只會下載補(bǔ)丁版本號比當(dāng)前應(yīng)用存在的補(bǔ)丁版本號高的補(bǔ)丁, 比如當(dāng)前應(yīng)用已經(jīng)下載了補(bǔ)丁版本號為5的補(bǔ)丁, 那么只有后臺發(fā)布的補(bǔ)丁版本號>5才會重新下載.
· 在上傳新的補(bǔ)丁之后姐刁,要調(diào)試時(shí),如果以往的補(bǔ)丁有處于 已灰度 或已發(fā)布狀態(tài)烦味,要停止發(fā)布聂使。 如果不停止,最新的補(bǔ)丁處于等待中谬俄,也就是未發(fā)布柏靶。那么當(dāng)你打開客戶端,它會拉取以往發(fā)布的補(bǔ)丁修復(fù)程序溃论,這樣會影響你觀測調(diào)試結(jié)果屎蜓。
· 后臺數(shù)據(jù)可能有少許延遲。
-
停止發(fā)布
點(diǎn)擊【停止發(fā)布】后钥勋,用戶選擇停止發(fā)布后炬转,系統(tǒng)將停止該補(bǔ)丁的繼續(xù)發(fā)布,但已加載該補(bǔ)丁的設(shè)備會依然保持安裝該補(bǔ)丁的狀態(tài)算灸。
界面變成:
停止發(fā)布 后 繼續(xù)發(fā)布
用戶點(diǎn)擊【繼續(xù)發(fā)布】后扼劈,將可以重新設(shè)置發(fā)布規(guī)則。
如果當(dāng)前版本在停止前處于灰度中菲驴,繼續(xù)發(fā)布可以:
· 重設(shè)灰度發(fā)布規(guī)則荐吵,新的規(guī)則中設(shè)備數(shù)必須大于之前的值。
· 改為全量發(fā)布。
所以先煎,從灰度發(fā)布到全量發(fā)布的步驟是
· 先在補(bǔ)丁詳情頁勾選灰度發(fā)布贼涩,點(diǎn)擊確認(rèn)發(fā)布
· 推送完所有灰度設(shè)備后,點(diǎn)擊停止發(fā)布
· 再點(diǎn)擊繼續(xù)發(fā)布薯蝎,彈出框遥倦,選擇全量發(fā)布
如果當(dāng)前版本在停止前處于全量發(fā)布,繼續(xù)發(fā)布可以:
繼續(xù)全量發(fā)布良风。
- 選擇回滾
用戶選擇回滾的目標(biāo)補(bǔ)丁后谊迄,所有該應(yīng)用版本下的設(shè)備都會回滾到目標(biāo)補(bǔ)丁的版本。
使用回滾功能必需要具備一下幾個(gè)條件:
· 當(dāng)前的版本已停止發(fā)布烟央。
· 該版本之前存在至少一個(gè)全量發(fā)布的歷史版本统诺。
全量發(fā)布
選擇全量發(fā)布后,將對所有安裝了當(dāng)前應(yīng)用版本(即之前創(chuàng)建應(yīng)用時(shí)所填寫的應(yīng)用版本號)的設(shè)備推送該補(bǔ)丁疑俭。
與灰度發(fā)布類似粮呢,在全量發(fā)布會可以根據(jù)自身需要停止本次全量發(fā)布,停止發(fā)布后可以選擇:
· 繼續(xù)全量發(fā)布钞艇。
· 回滾版本(如果存在歷史版本)
添加過濾機(jī)型
全量發(fā)布后啄寡,我們可以添加過濾機(jī)型。
不全量發(fā)布是不可以添加機(jī)型過濾的
在App版本詳情頁哩照,點(diǎn)擊【添加過濾機(jī)型】
這里對過濾機(jī)型的彈出框參數(shù)進(jìn)行說明:
- 系統(tǒng)版本
系統(tǒng)版本是指手機(jī)所使用的OS的版本挺物。
在控制臺中,有相應(yīng)的系統(tǒng)版本列表可供選擇飘弧。如果列表中沒有需要自定義识藤,請按如下標(biāo)準(zhǔn)獲取系統(tǒng)版本。
android.os.Build.VERSION.RELEASE
例如系統(tǒng)版本結(jié)果是:7.1
- 手機(jī)品牌
手機(jī)品牌是指手機(jī)貼牌商標(biāo)代表的品牌次伶,需要區(qū)別手機(jī)制造商痴昧,手機(jī)制造商可能會生產(chǎn)多個(gè)品牌,一個(gè)品牌也可能是多個(gè)制造商生產(chǎn)冠王。
在控制臺中赶撰,我們有相應(yīng)的品牌列表供選擇使用。如果需要自定義柱彻,請按如下標(biāo)準(zhǔn)獲取手機(jī)品牌豪娜,注意實(shí)際過濾時(shí)不區(qū)分大小寫。
android.os.Build.BRAND
例如手機(jī)品牌是:Xiaomi
- 手機(jī)機(jī)型
手機(jī)機(jī)型是指某個(gè)手機(jī)品牌下手機(jī)具體的型號绒疗。
目前由于手機(jī)機(jī)型龐雜侵歇,沒有提供選擇列表供選擇,后續(xù)會支持吓蘑。填寫手機(jī)機(jī)型時(shí)請按如下標(biāo)準(zhǔn),不區(qū)分大小寫。
android.os.Build.MODEL
例如手機(jī)型號是:OPPO R11
【注意】如果想設(shè)置全部機(jī)型磨镶,請?jiān)谧远x機(jī)型里面溃蔫,輸入 :all
到這里,sophix集成的全部內(nèi)容就結(jié)束了琳猫。阿里熱修復(fù)官方的文檔有點(diǎn)瑣碎伟叛,我把重點(diǎn)和注意點(diǎn)都挑出來了。讀完這四篇脐嫂,相信你會迅速集成sophix到自己的應(yīng)用里统刮。
這再給出官方接入文檔地址,給還想看官方文檔的朋友账千。官方接入文檔