android Tinker 熱修復 樂固加固後友盟打多渠道包之後的補丁失效

繼上一篇 android tinker 熱修復使用及注意事項  生成了熱修復的補丁;

現在的需求是這樣的,我想把這個包用騰訊樂固加固,然後生成多渠道包,希望這個補丁能修復所有這些渠道的包,經過測試,直接操作修復失敗,解決步驟如下:

參考熱修復api文檔sdk接入,發現支持加固,處理方法是添加protectedApp=true,api中說是在productFlavor的flavor中添加protectedApp=true:

productFlavors {
        flavor {
            flavorName = "protect"
            appVersion = "${tinkerpatchSupport.appVersion}_${flavorName}"

            pathPrefix = "${bakPath}/${baseInfo}/${flavorName}-${variantName}/"
            name = "${project.name}-${flavorName}-${variantName}"

            baseApkFile = "${pathPrefix}/${name}.apk"
            baseProguardMappingFile = "${pathPrefix}/${name}-mapping.txt"
            baseResourceRFile = "${pathPrefix}/${name}-R.txt"

            /** 開啓加固開關,上傳此flavor的apk到加固網站進行加固 **/
            protectedApp = true
        }
    }
而項目中可能使用友盟,多渠道是這麼寫的:


而樂固中也支持多渠道打包,sdk的集成文檔上感覺有點繁雜,所以這裏其實可以直接先打一個渠道包,隨意命名example:crm{},然後通過樂固加固完成後打成多渠道包,樂固的配置如下:


三個渠道tengxun,aliba,qh360,注意這裏是重點了:代碼中也需要修改配置,在tinkerpatch.gradle添加supportComponent=true,protectedApp=true,1.4.1版本是不支持這些屬性的,所以對應的app中build.gradle中的tinkerpatch-android-sdk版本需要從1.4.1改到1.2.1,tinkerpatch-gradle-plugin版本改成1.2.1如下:



修改完畢,親測樂固打多渠道可以正常修復,如博客中的寫的有誤請批評指正,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章