之前有记录过使用美团walle实现多渠道打包,但是现在有这么一个情况:项目中集成了一个第三方的库,根据其官方文档来配置:
onlineCompile project(path: ':common-motion', configuration: 'onlineRelease')
这时候,再使用常规的多渠道打包方法:gradlew clean assembleReleaseChannels。
无效,显示打包失败。
因为渠道很多,不可能一个一个打包,所以还是要多渠道打包。那么怎么解决呢?最终找到一个可行的方法:ProtectedApkResignerForWalle-master。
一个开源工具,链接:https://github.com/Jay-Goo/ProtectedApkResignerForWalle
使用这个工具可以实现多渠道打包。
》》使用方法如下:
1. 因为要使用到python命令,所以先安装python
2. 下载ProtectedApkResignerForWalle-master
3. 使用android studio的Build->Generate Signed APK方式打出一个release版本的apk,这个是没问题的:ssxj_v1.3.1_beta.apk(已签名),打出这个apk之后,需要加固一下(我这边是这样做的),使用的梆梆加固,下载加固之后的apk文件进行下面的打渠道包的操作
4. 将ssxj_v1.3.1_beta.apk放入ProtectedApkResignerForWalle-master目录下
5. 配置config.py文件
配置时,一定要注意一句话:#Windows 下路径分割线请注意使用\转义
因为我们直接从windows中拷贝过来的文件路径是这样的:
E:\work\xxxx\xxxx\xxxx_app_android\app\keystore\xxxx.keystore
在配置的时候需要是这样的:
E:/work/xxxx/xxxx/xxxx_app_android/app/keystore/xxxx.keystore
还有就是protectedSourceApkName = “ssxj_v1.3.1_beta.apk”,这里的文件名称 一定要跟你放入当前目录下的apk名称一致。
6. 在channel中配置渠道信息
7. 在当前目录下,打开dos窗口,执行命令:python ApkResigner.py
可以看到,生成了一个channels文件夹
好了,多渠道打包完成。