v2打包+walle多渠道+加固+tinker热更新的实践过程

v2打包+walle多渠道+加固+tinker热更新的实践过程

基于公司的多渠道需求,整合tinker热更新和360加固
由于公司的应用要发布到各个应用市场(大概有二十个左右),如果一个个打包的话,是一个巨大的工作量;特别是打完包之后发现有一个测试toast忘记注释掉了。。。
多渠道打包的方式我看了一些,最终选择了walle,说下他的好处:
1:好管理(只需要在配置文件中配置上渠道就行);
2:操作简单(只需要依赖walle的插件即可);
3:打包速度快;
具体的walle说明请进入walle
v2打包是android7.0引入的新的打包方式,优点是apk速度快,更安全,而walle打包是基于v2打包的:只有v2打的apk才可以使用walle进行多渠道分发。

去年热更新技术比较火,阿里美团腾讯都有各自的热更新技术,最终我们选择的微信的热更新方案tinker。
我是采用的bugly集成的tinker服务,bugly热更新官网文档
抠一张图说明下:
这里写图片描述

先说下之前的发包方式:由于应用需要加固,我们选用的360加固的方式,刚开始360加固和tinker冲突,使用了360加固之后,无法合并补丁包,这个问题bugly已经做了支持,在tinker配置中设置:

// 是否使用加固模式,默认为false
     isProtectedApp = true

整体流程:使用walle命令在gradle中打基准包和多渠道包:在Terminal中:

./gradlew clean assembleReleaseChannels

渠道包生成之后会按照你的配置的路径输出,我的在/outputs/channels中,同时,tinker的基准包也已经生成,tinker基准包生成地址在tinker配置文件中配置,我的在${buildDir}/bakApk/。然后对这些生成的渠道包进行加固、重新签名,最后发布市场。这个流程使用测试环境测过好几次,可以修复所有渠道的包。

结果两天后数据分析的人员找过来了,为什么统计数据android所有的渠道都是空,,,mdzz,这是又踩坑了吗,又过了一遍流程:
多渠道包没问题,加固前获取渠道的方法还好用,加固后失效了,看来是加固的问题。

查了下资料,360加固后的重新签名会破坏掉渠道信息,那就只加固不签名,加固所有渠道包之后,对所有的加固后的apk进行命令签名。
这一套流程也太麻烦了,而且时间也相当长,对二十个apk进行加固太耗时间了,只能写脚本串联上所有的操作了

先理一下需求:
1:首先要有tinker的基准包;
2:加固只需要加固这一个基准包apk就行,之后针对加固后的包做签名+渠道;
3:能把所有的流程整合起来,通过一个批处理来处理;
思路理清了,就开始走流程了:
1:在android studio中还是使用tinker的生成基准包的方式生成一个基准包
2:对此基准包进行加固,可以使用360加固包的客户端,但是不要勾选签名选项,只加固不签名;
3:对此已经加固但是没有签名的apk进行处理,结果是生成已经签名的多渠道包。
其中1,2步骤只能手动操作,3步骤可以生成一个脚本文件:

此脚本文件中先对加固后apk进行检查、优化、签名,然后联合walle命令生成多渠道包,
下面是已经做好的window的脚本:
多渠道打包脚本
其中:
1:可编辑渠道:改成自己要发布的渠道
2:可编辑配置:签名信息,改成自己的签名信息
3:签名文件:换成自己的签名文件
将上述三个文件更改为自己的需要的就可以了,其他不用动。
使用方式:
将自己的已经加固(未签名)之后的包拖到上面那两个exe文件之一就行,
两个文件的区别就是:一个有打包步骤展示,需要按键继续,
一个是直接运行到最后打出渠道包出来。用哪个都行。

脚本下载地址:[https://github.com/zhoubo07/mytools]
(https://github.com/zhoubo07/mytools)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值