继上一篇 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如下:
修改完毕,亲测乐固打多渠道可以正常修复,如博客中的写的有误请批评指正,谢谢!