1.前言
最近在項(xiàng)目里面打算集成騰訊的Bugly熱更新和奔潰記錄喷斋,這里遇到一些集成過程中遇到的問題逾一,記錄一下
1.集成
集成先按官方文檔的來踢代,我是在androidstudio3.0集成的夫啊,建議去github拿到最新的熱更新版本號(hào)遮晚,不然as會(huì)提示你更新,然后就是dex我按照1.0.1配置的渣蜗,按照官方的1.0.2我的會(huì)提示報(bào)錯(cuò)沖突
Warning:Conflict with dependency 'com.android.support:multidex' in project ':app'. Resolved versions for app (1.0.2) and test app (1.0.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.
這里我推薦使用不改變自己的原有application的配置方法屠尊,這樣可以不用改變你原有的application結(jié)構(gòu),里面的代碼直接粘github里面的案例耕拷,注意這個(gè)改成false讼昆,因?yàn)槲业捻?xiàng)目還沒上線,所以測試全量設(shè)備沒事
用自己的application記得把這個(gè)設(shè)置成true
2.調(diào)試
然后我就一路按文檔構(gòu)建簽名打包骚烧,記得先寫一個(gè)bug在打包浸赫,然后我就直接用這里打好的包跑起來,然后在更改bug打補(bǔ)丁包赃绊,然后運(yùn)行起來既峡,后臺(tái)上傳補(bǔ)丁直接提示沒有對(duì)應(yīng)基線版本,然后查看文檔發(fā)現(xiàn)有一個(gè)多渠道打包碧查,后來發(fā)現(xiàn)多渠道打包支持原生的productFlavors打包方式运敢,可是問題來了,每一個(gè)渠道都要一個(gè)渠道補(bǔ)丁忠售,我這么偷懶的人怎么能這么干呢传惠,參考文檔https://buglydevteam.github.io/2017/05/15/solution-of-multiple-channel-hotpatch/又是一頓替換打包方式,替換成美團(tuán)的wallt稻扬,一切配置好之后又開始打包了卦方,官方推薦的是命令行打包,其實(shí)可以在as右側(cè)有個(gè)綠色圓圈里面也可以一鍵打包
如圖:
然后我打完之后發(fā)現(xiàn)沒有patch路徑泰佳,只有一個(gè)盼砍,當(dāng)然上傳的補(bǔ)丁也是識(shí)別不到的了尘吗,找了半天才發(fā)現(xiàn)原來是弄錯(cuò)了打補(bǔ)丁的地方,眼神不行浇坐,然后又是一頓打包安裝摇予,這次是安裝上了,但是并沒有官方說的基線版本上報(bào)的日志吗跋,最后我補(bǔ)丁下發(fā)成功也沒看到這個(gè)所謂的上報(bào)日志侧戴,估計(jì)眼神不行了。發(fā)送補(bǔ)丁包需要冷啟動(dòng)才能生效跌宛,這個(gè)跟trinker的修復(fù)原理有關(guān)酗宋,所以需要?dú)⑺肋M(jìn)程進(jìn)去測試。(補(bǔ)丁下發(fā)需要一定時(shí)間疆拘,可以打包的時(shí)候去上個(gè)廁所)
3.總結(jié)
最后總算是集成進(jìn)來了蜕猫,然后補(bǔ)丁也打上了,最后總結(jié)一下哎迄,這里官方有兩種方式編譯patch補(bǔ)丁包
兩種我都嘗試過了回右,都是可以的,然后就是你上傳補(bǔ)丁的時(shí)候可能匹配的版本跟你的版本名字不一樣漱挚,那是因?yàn)槟愦虻亩嗲腊拿植灰粯酉杷福槐伢@慌,還有就是這里文檔里面沒加旨涝,我是加了的蹬屹,最好還是加一下吧,最后白华。重要的事情說三遍慨默,上線的版本打的基礎(chǔ)包一定要保存,一定要保存弧腥,保存厦取,不然沒地方打補(bǔ)丁,網(wǎng)上有人說編譯失敗要關(guān)掉instantrun管搪,而我就不一樣了虾攻,我直接不開啟。差不多就這么多了抛蚤,如果不用自動(dòng)生成id台谢,打補(bǔ)丁的時(shí)候一定要在你的tinkerId后面原來的號(hào)碼上面加點(diǎn)啥寻狂,至于加點(diǎn)啥看個(gè)人愛好了岁经。使用這些第三方sdk還是很方便的對(duì)我們的開發(fā),但是集成的時(shí)候感覺不難蛇券,實(shí)際操作的時(shí)候還是有難度的缀壤。對(duì)于老項(xiàng)目跟換打包方式可能對(duì)統(tǒng)計(jì)有影響樊拓,但是你覺得是修復(fù)bug重要呢還是修復(fù)bug重要呢。