1. 程式人生 > >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如下:



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