解决Walle批量化打包 加固后渠道丢失问题
walle多渠道打包:https://github.com/Meituan-Dianping/walle
解决方案来源:https://github.com/Jay-Goo/ProtectedApkResignerForWalle
步骤:
1.下载对应脚本:ProtectedApkResignerForWalle解压下载
2.下载python环境,命令行输入 python
检测是否已安装
3.将自己项目中的channel文件覆盖之前解压后目录下的channel文件
4.将已经加固好的包【未签名的包,请不要使用加固客户端签名工具】放到脚本工具根目录下,即app-release.apk。(在360加固助手里的“签名设置”–“启动自动签名”不勾选。)
5.运行命令 python ApkResigner.py,即可自动生成所有渠道包。
其中config.py
配置好的示例:
#!/usr/bin/python
#-*-coding:utf-8-*-
#keystore信息
#Windows 下路径分割线请注意使用\\转义
keystorePath = "/Users/jingbin/Documents/xxx/app/xxxxx.keystore"
keyAlias = "xxx"
keystorePassword = "xxx"
keyPassword = "xxx"
#加固后的源文件名(未重签名)
protectedSourceApkName = "app_1.0.0_release_jiagu.apk"
#加固后的源文件所在文件夹路径(...path),注意结尾不要带分隔符,默认在此文件夹根目录
protectedSourceApkDirPath = ""
#渠道包输出路径,默认在此文件夹Channels目录下
channelsOutputFilePath = ""
#渠道名配置文件路径,默认在此文件夹根目录
channelFilePath = ""
#额外信息配置文件(绝对路径,例如/Users/mac/Desktop/walle360/config.json)
#配置信息示例参看https://github.com/Meituan-Dianping/walle/blob/master/app/config.json
extraChannelFilePath = ""
#Android SDK buidtools path , please use above 25.0+
sdkBuildToolPath = "/Users/jingbin/Documents/AndroidStudio/sdk/build-tools/28.0.3"
第二次:
1.将已经加固好的包【未签名的包,请不要使用加固客户端签名工具】放到脚本工具根目录下,即app-release-xxx.apk。
2.直接将config.py
里的protectedSourceApkName修改成目录下的apk文件名app-release-xxx.apk
3.运行命令 python ApkResigner.py
配置python环境
官网下载:https://www.python.org/downloads/release/python-3111/
环境配置:
1、解决:打开zshrc文件
vim ~/.zshrc
2、在.zshrc文件里添加环境变量地址,如下:
alias python=/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.11
export PYTHON_HOME=/Library/Frameworks/Python.framework/Versions/3.11
export PATH=$PATH:$PYTHON_HOME/bin
source ~/.bash_profile
注意最后一行加上:source ~/.bash_profile
3、保存后,退出刷新
按esc
然后:wq
退出后,source ~/.bash_profile
再在命令行输入:python
参考:
- https://juejin.cn/post/6864813306298040328
- https://blog.csdn.net/qq_38089860/article/details/120107823