1.配置基準(zhǔn)包的tinkerId
(注意這里的base
版本必須聯(lián)網(wǎng)上報(bào) 才可以上傳補(bǔ)丁包)
設(shè)置你的基準(zhǔn)版本號 最好是和app version
對應(yīng)
2.執(zhí)行assembleRelease
編譯生成基準(zhǔn)包
在android studio
的右邊選擇gradle
找到我們接入熱更新的model
進(jìn)入build
中選擇生成的基準(zhǔn)包類型:這里可以是Release
和Debug
版本
3.這個(gè)會在build/outputs/bakApk
路徑下生成每次編譯的基準(zhǔn)包、混淆配置文件田篇、資源Id文件,如下圖所示
這里面有的app-release.apk
就是我們需要上線的基線版本,請注意保存線上發(fā)布版本的基準(zhǔn)apk
包、mapping
文件呆细、R.txt文件态辛,如果線上版本有bug
阶界,就可以借助我們tinker-support
插件進(jìn)行補(bǔ)丁包的生成。
3.如果你沒有開啟混淆是不會有mapping.txt
文件的坛梁,需要在Moudle
的build.gradle
文件中開啟混淆
怎樣生成簽名文件這里就不介紹了而姐。
4.對基線版本的bug
修復(fù)
上面生成了base
包了,那就需要去生成patch
包了划咐。
基準(zhǔn)包的代碼:
補(bǔ)丁包(patch
)的代碼:
5.根據(jù)基線版本生成補(bǔ)丁包
這里需要注意的:基準(zhǔn)包目錄必須是你上次生成的base
包拴念,注意這里是按照時(shí)間命名的,檢查能否正確褐缠,tinkerId
需要生成patch
包必須使用 tinkerId="patch-base"
版本號對應(yīng)"
6.執(zhí)行構(gòu)建補(bǔ)丁包的task
如果你要生成不同編譯環(huán)境的補(bǔ)丁包政鼠,只需要執(zhí)行
TinkerSupport
插件生成的task
,比如buildTinkerPatchRelease
就能生成release
編譯環(huán)境的補(bǔ)丁包队魏。
6.生成的補(bǔ)丁包在build/outputs/patch
目錄下公般,其中7zip.apk
就是我們需要使用的補(bǔ)丁包:
打開補(bǔ)丁包可以看到里面會有一個(gè)YAPATCH.MF
,這里面包含了我們是從base
版本到patch
版本:以及app
的version
信息
7.上傳補(bǔ)丁包到平臺
進(jìn)入到對應(yīng)
appid
的app
中胡桨,選擇應(yīng)用升級官帘,熱更新,發(fā)布新補(bǔ)丁昧谊。
發(fā)布patch
版本刽虹,選擇補(bǔ)丁文件之后會自動(dòng)從補(bǔ)丁包的YAPATCH.MF
去尋找base
版本以及app
版本,注意這里的base
版本必須聯(lián)網(wǎng)上報(bào)(必須在聯(lián)網(wǎng)的情況下啟動(dòng)app
)揽浙,才可以上傳補(bǔ)丁成功状婶。如果沒有
上傳了補(bǔ)丁包可以選擇下發(fā)的范圍:
- 開發(fā)設(shè)備:僅僅針對設(shè)置了開發(fā)設(shè)備意敛。
- 利用代碼:
Bugly.setIsDevelopmentDevice(this, true);
設(shè)置為開發(fā)者設(shè)備。 - 全量設(shè)備:針對所有的用戶膛虫。
- 自定義:可以設(shè)置下發(fā)范圍:隨機(jī)下發(fā)設(shè)置的版本數(shù)量草姻,還可以設(shè)置
android
版本范圍,僅僅在這個(gè)范圍內(nèi)才會下發(fā)并且生效稍刀。
下發(fā)補(bǔ)丁之后:
里面包括了激活的用戶數(shù)量以及下發(fā)的數(shù)量撩独,在操作過程中我們可能對于上個(gè)補(bǔ)丁不太滿意,我們需要發(fā)布一個(gè)新的補(bǔ)丁账月,
bugly
提供了2中操作综膀。
停止下發(fā):點(diǎn)擊之后將不會在下發(fā)bugly
補(bǔ)丁,但是之前已經(jīng)下載并且激活的不會刪除掉補(bǔ)丁局齿。
撤回:點(diǎn)擊之后將停止下發(fā)補(bǔ)丁剧劝,并且之前已經(jīng)下載并且激活的用戶將會刪除掉補(bǔ)丁包,并且恢復(fù)到基準(zhǔn)包的版本抓歼。
8.檢查patch包能否生效
基準(zhǔn)包執(zhí)行效果圖:
基準(zhǔn)包效果圖
修復(fù)之后的效果圖:
如果不能立即生效讥此,需要吧app
至于后臺一段時(shí)間才能生效
其他相關(guān)文章
http://yiweifen.com/html/news/WaiYu/74967.html
https://buglydevteam.github.io/2017/05/15/solution-of-multiple-channel-hotpatch/
https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix-demo/