繼上一篇 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如下:
修改完畢,親測樂固打多渠道可以正常修復,如博客中的寫的有誤請批評指正,謝謝!