最近一直在整合自动化打包
自动完成拆包→修改xml→替换图标→打包→签名→360加固→签名→输出渠道包
基于sign_apk、MultiChannelBuildTool、apktool、360加固开发,需要py2.x(兼容sign_apk需求)和py3.x环境(本人默认编程环境)
靠百度出来的很多代码都不靠谱
比如一个文件模糊查询后获取文件名
百度Python 指定文件模糊查询
都是一堆复杂代码
其实一个for+if判断语句就能实现
for ifFile in os.listdir('./目标文件夹'):
if '_xxx.yyy' in ifFile:
return ifFile
目前实现了代码解耦
git创建私有项目
git设置忽略.gitignore
关于autoapktool的需求
是基于各个应用市场的规则不同
导致为了获取最大来量
必须每个市场在名称、图标等上采取变动方案
流程为as出release包
然后用apktool拆包
os.system('apktool d ' + apkfile)
接下来读取需求配置list
for循环对每个list[i]执行命令:
1、包含xml文件修改、png图片替换等
2、替换后用apktool封包
3、移动新包变更特征名称
4、签名新包
5、360加固
6、签名加固包
7、渠道包输出至output_<特征名>
def apktoolTodo(apkfile,newPath,键值1,键值2,新icon地址):
#apkfile文件提取文件名对应apktool拆包文件夹apkpath
apkpath=apkfileToPath(apkfile)
print('★★★★★★★★★★拆包完成,获取文件目录')
# 生成变更apk名目录
valueStringPath=apkpath+'目标xml文件夹'
# 生成icon文件目录,用于替换图标使用
iconFilePath=apkpath+'目标icon文件夹'
#修改代码开始
#此处根据需求添加代码,需要的外部变量自行添加到def
#修改代码结束
print('★★★★★★★★★★变更完成,准备开始封包')
os.system('apktool b '+apkpath)
print('★★★★★★★★★★封包完成,移动文件到目标文件夹')
os.system('mv '+apkpath+'/dist/'+apkpath+'.apk '+newPath)
print('★★★★★★★★★★移动文件完成,删除打包临时文件')
os.system('rm -r ' + apkpath +'/build')
os.removedirs(apkpath +'/dist')