关于tinker 热修复的多渠道打包方式
2017-08-21 16:48
344 查看
上篇博客介绍了tinker 热修复的接入的问题[]http://blog.csdn.net/qq1221jyj/article/details/73743612]
当接入成功后,项目又做了多渠道的东西。难道要一个渠道对应一个补丁包吗?那哪哪哪 ~~简直开玩笑。绝对不行。这么做不符合一个程序员的身份啊。
tinker官方文档推荐用walle或者packer-ng-plugin来辅助打渠道包
因为walle 只支持v2 的签名方式打包。项目要兼容低版本,只能舍弃。最后只能用packer来做。最近packer最新版本2.0.0 也开始只支持v2 签名
。还好有1.0.9可以用
接下来开始一步步讲解。怎么用packer来打渠道包。(用这种方式打包,不但可以热修复只打一个补丁包以外,打渠道包速度还大幅度提升,打渠道包时间过长的兄弟,也要看过来啊)
准备工作:
1 使用packer 的环境 Mac 安装2.x版本的python(windows兄弟就要自己在配置其他环境了)
2 项目中需要在gradle中配置多渠道信息的逻辑, 都要放到java文件中设置。比如友盟的 设置渠道信息
MobclickAgent.startWithConfigure(newMobclickAgent.UMAnalyticsConfig(mContext, Config.UMENG_KEY, CHANNEL));
等之类的操作。
3 先到官网下载samlpe。找到文件夹下的tools文件夹。将里面的python文件放到一个方便操作的目录下。我是放到桌面,新建文件夹fastmakeapp
方便操作。
4 将渠道信息提前写到txt文件里面。在这要注意下,渠道信息
5 打出一个不到任何渠道信息的基础包 base.apk
接下来就可以愉快的使用packer给base.apk添加渠道信息了。
一 打开mac终端 将工作路径切换到packer的打包工具目录下,我是放到fastmakeapp文件夹下的。尽量把 base.apk 和打包工具PackerNg-1.0.9.py 放到同级目录,方便下面的操作。
二 在终端输入python PackerNg-1.0.9.py base.apk channel.txt okapp 命令。 切记 开头一定要有python 否则无法识别该命令。当初就因为这个,卡住我好几天。尴尬尴尬。 PackerNg-1.0.9.py 是打包工具的核心文件。 base.apk是基础包。 channel.txt 渠道信息文件。okapp 是存放打出来渠道包的文件夹。
经过上面的几步操作。渠道包基本就可以打出来了。
后记遇到的问题:
1
上图左右两边看上去是不是一毛一样。但是打包时候用左边的就会报错,包名过长。用右边就没问题。为啥呢!!!!!原因(右边是我手打进去的,打一个渠道信息敲一下回车。左边是我从excel直接复制进去的。文件转成16进制就会发现问题了 回车是\r 换行是\n 打包工具只能识别 \r ) 这点要注意了。 要是有python基础的同学或许更容易发现这个问题。在此要感谢后台同事提醒啦
使用该工具目前只遇到了这两个问题(字体加粗)。
老规矩,以后使用过程中遇到问题 ,博客继续更新。有问题的同学评论留言,我看到会及时帮大家解决问题
当接入成功后,项目又做了多渠道的东西。难道要一个渠道对应一个补丁包吗?那哪哪哪 ~~简直开玩笑。绝对不行。这么做不符合一个程序员的身份啊。
tinker官方文档推荐用walle或者packer-ng-plugin来辅助打渠道包
因为walle 只支持v2 的签名方式打包。项目要兼容低版本,只能舍弃。最后只能用packer来做。最近packer最新版本2.0.0 也开始只支持v2 签名
。还好有1.0.9可以用
接下来开始一步步讲解。怎么用packer来打渠道包。(用这种方式打包,不但可以热修复只打一个补丁包以外,打渠道包速度还大幅度提升,打渠道包时间过长的兄弟,也要看过来啊)
准备工作:
1 使用packer 的环境 Mac 安装2.x版本的python(windows兄弟就要自己在配置其他环境了)
2 项目中需要在gradle中配置多渠道信息的逻辑, 都要放到java文件中设置。比如友盟的 设置渠道信息
MobclickAgent.startWithConfigure(newMobclickAgent.UMAnalyticsConfig(mContext, Config.UMENG_KEY, CHANNEL));
等之类的操作。
3 先到官网下载samlpe。找到文件夹下的tools文件夹。将里面的python文件放到一个方便操作的目录下。我是放到桌面,新建文件夹fastmakeapp
方便操作。
4 将渠道信息提前写到txt文件里面。在这要注意下,渠道信息
5 打出一个不到任何渠道信息的基础包 base.apk
接下来就可以愉快的使用packer给base.apk添加渠道信息了。
一 打开mac终端 将工作路径切换到packer的打包工具目录下,我是放到fastmakeapp文件夹下的。尽量把 base.apk 和打包工具PackerNg-1.0.9.py 放到同级目录,方便下面的操作。
二 在终端输入python PackerNg-1.0.9.py base.apk channel.txt okapp 命令。 切记 开头一定要有python 否则无法识别该命令。当初就因为这个,卡住我好几天。尴尬尴尬。 PackerNg-1.0.9.py 是打包工具的核心文件。 base.apk是基础包。 channel.txt 渠道信息文件。okapp 是存放打出来渠道包的文件夹。
经过上面的几步操作。渠道包基本就可以打出来了。
后记遇到的问题:
1
上图左右两边看上去是不是一毛一样。但是打包时候用左边的就会报错,包名过长。用右边就没问题。为啥呢!!!!!原因(右边是我手打进去的,打一个渠道信息敲一下回车。左边是我从excel直接复制进去的。文件转成16进制就会发现问题了 回车是\r 换行是\n 打包工具只能识别 \r ) 这点要注意了。 要是有python基础的同学或许更容易发现这个问题。在此要感谢后台同事提醒啦
使用该工具目前只遇到了这两个问题(字体加粗)。
老规矩,以后使用过程中遇到问题 ,博客继续更新。有问题的同学评论留言,我看到会及时帮大家解决问题
相关文章推荐
- 关于微信Tinker热修复自己的集成方式以及问题
- 热修复Tinker和多渠道打包Walle
- Tinker热修复 及walle多渠道打包流程
- 腾讯Tinker 热修复 Andriod studio 3.0 配置和集成(二)多渠道打包和补丁发布
- bugly集成Tinker热修复,多渠道打包 签名
- [置顶] 热修复框架Tinker最完整讲解(02)——加入Walle多渠道打包
- [置顶] 热修复框架Tinker最完整讲解(02)——加入Walle多渠道打包
- Tinker热修复 及walle多渠道打包流程
- Android多渠道打包三种方式
- 关于AndroidStudio的打包数字签名以及多渠道发布
- android Tinker 热修复 乐固加固后友盟打多渠道包之后的补丁失效
- 更便捷的Android多渠道打包方式
- 关于androidStudio使用多渠道打包
- Android几种常见的多渠道(批量)打包方式介绍
- 关于H264通过RTP传输的打包方式
- gradle 的配置(多渠道打包,改包名,测试环境vs正式环境处理方式,配置宏)
- Android几种常见的多渠道(批量)打包方式介绍
- Android Studio多渠道打包方式一:通过外部文件来写渠道信息
- 借助友盟提供的多渠道打包的方式,用于渠道统计
- 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录