自动化瓦力多渠道打包python脚本
自动化瓦力多渠道打包python脚本
目录介绍
- 1.本库优势亮点
- 2.使用介绍
- 3.注意要点
- 4.效果展示
- 5.其他介绍
0.首先看看我录制的案例演示
- 如下所示,这段python代码很简单,工具十分强大,一键多渠道打包工具。
- 项目的开源地址:https://github.com/yangchong211/YCWalleHelper
1.本库优势亮点
- 通过该自动化脚本,自需要run一下或者命令行运行脚本即可实现美团瓦力多渠道打包,打包速度很快
- 配置信息十分简单,代码中已经注释十分详细。Keystore信息一定要配置,至于渠道apk输出路径,文件配置路径等均有默认路径,没有配置也没关系
- 针对输出路径是根目录下的output文件夹,文件不存在则创建,文件存在则是先删除之前多渠道打包生成的【也就是删除output文件夹下所有文件】,然后在重新生成
- 多渠道的定义是在channel这个文件中,建议是txt文件格式,你可以根据项目情况修改,十分快捷
- 如果瓦力打包工具更新了,直接替换一下lib中的jar即可。可以在python3.x上跑起来!
- 我也参考了大量的博客,网上博客很多,我始终觉得对于这种实操性很强的案例,还是博客和项目一起学习才效果更好。感谢无数的前辈大神!
2.使用介绍
- 第一步:准备基础的文件
- 将你加固好的apk文件,keystore,已经需要多渠道配置信息的channel放到指定的apk文件中
- 初步建议,如果你想自定义存放文件的路径,可以先熟悉一下python的代码再做修改,也没有什么难度
- 第二步:配置Config.py文件中的属性
- 配置keystore信息,这个地方引用你的keystore信息
# keystore信息
# Windows 下路径分割线请注意使用\\转义
keystorePath = "D:\\GitHub\\YCWalleHelper\\venv\\Include\\apk\\ycPlayer.jks"
keyAlias = "yc"
keystorePassword = "19930211"
keyPassword = "19930211"
- 配置其他信息,比如apk的名称,渠道包配置路径,输出路径等等
# 加固后的源文件名(未重签名)
# 必须要配置
protectedSourceApkName = "app_release_aligned_signed.apk" # 下面这些可以不用配置,代码中会有默认的值
# 加固后的源文件所在文件夹路径(...path),注意结尾不要带分隔符,默认在此文件夹根目录
protectedSourceApkDirPath = ""
# 渠道包输出路径,默认在此文件夹output目录下
channelsOutputFilePath = ""
# 渠道名配置文件路径,默认在此文件夹apk目录下
channelFilePath = ""
# 额外信息配置文件(绝对路径)
# 配置信息示例参看,默认是此文件夹apk目录下
extraChannelFilePath = "" # Android SDK buidtools path , please use above 25.0+
# 必须配置
sdkBuildToolPath = "D:\\Program File\\AndroidSdk\\build-tools\\28.0.3"
- 第三步:直接运行
- 第一种方式是通过PyCharm工具运行,这个直接run就可以呢。程序员建议使用这种!
- 第二种方式是通过命令行运行,就可以实现自动化打包
python MainWalle.py
- 第四步:修改多渠道配置信息
- 直接找到channel文件,进行修改即可,注意格式!
360 #360
91anzhuo # 91安卓
anzhuo # 安卓
baidu # 百度
wandoujia # 豌豆荚
xiaoyangdoubi #小杨逗比
yingyongbao # 应用宝
3.注意要点
3.1 注意在apk目录中一定要放入channel,keystore,还有加固的apk文件
- channel是指指定多渠道信息
- keystore是指你要签名的apk的钥匙
- apk是指你需要进行多渠道打包的加固文件。注意apk文件名称要和Config配置的apk名称要一致。

3.2 配置keystore信息需要注意的问题
- 主要是注意路径是全路径
# keystore信息
# Windows 下路径分割线请注意使用\\转义
keystorePath = "D:\\GitHub\\YCWalleHelper\\venv\\Include\\apk\\ycPlayer.jks"
keyAlias = "yc"
keystorePassword = "19930211"
keyPassword = "19930211"
3.3 注意apk下存放的apk文件名称和Config.py中配置的apk名称要相同
- 看下面这个截图
3.4 关于部分疑问问题
- 关于Config.py中的sdkBuildToolPath,建议和你使用studio的版本保持一致。别忽略这种小的问题!
- 注意如果要配置定义路径等属性,由于编码格式为UTF-8,所以不要带异常字符
- 多渠道打包时,如果要修改多渠道信息,直接修改channel,这个文件就不要修改成其他的名称呢!
4.效果展示
- 如图所示,建议你亲自尝试一下,特别好玩!
5.其他介绍
关于其他内容介绍

关于博客汇总链接
其他推荐
- 博客笔记大汇总【15年10月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计47篇[近20万字],转载请注明出处,谢谢!
- 链接地址:https://github.com/yangchong211/YCBlogs
- 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!
参考博客
- https://github.com/Meituan-Dianping/walle
- https://blog.csdn.net/ruancoder/article/details/51893879
- https://www.cnblogs.com/morang/p/python-build-android-apk.html
- https://www.jianshu.com/p/b5b4f7fc5264
- https://www.jianshu.com/p/20a62d1eba3f
- https://github.com/Jay-Goo/ProtectedApkResignerForWalle
- https://blog.csdn.net/u013692888/article/details/77933548
关于LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
自动化瓦力多渠道打包python脚本的更多相关文章
- 打包python脚本为exe可执行文件-pyinstaller和cx_freeze示例
本文介绍使用cx_freeze和pyinstaller打包python脚本为exe文件 cx_freeze的使用实例 需要使用到的文件wxapp.py, read_file.py, setup.py ...
- PyInstaller打包python脚本的一些心得
PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...
- 打包python脚本为exe的坎坷经历, by pyinstaller方法
打包python脚本为exe的坎坷经历, by pyinstaller方法 又应验了那句歌词. 不经历风雨, 怎么见得了彩虹. 安装过程略去不提, 仅提示: pip install pyinstall ...
- PyInstaller打包Python脚本为exe
1.PyInstaller-3.1.1 百度云链接 http://pan.baidu.com/s/1jHYWin8 密码 oapl 2.安装最新版本的 pywin32-217.win32-py2 ...
- 用Py2exe打包Python脚本简单介绍
一.简述 Py2exe,从这个名字上就可以理解,把Python脚本转换为windows平台上面可以运行的可执行程序(*.exe)的工具.经过转换后,你可以不 用安装Python的执行环境就可 ...
- py2exe打包python脚本
在工作中遇到将python脚本转换成exe可执行程序的需求,通过查询可以使用py2exe来构建满足要求的程序,这里简要说明一下使用步骤. 一.py2exe是一个将python脚本转换成windows上 ...
- 封装打包Python脚本
1.前言 封装打包Python的好处,节省了安装各种各样包依赖的问题,同时可以加强我们代码隐私的安全性,这里我的演示环境是Python3.6 ,CentOS7的系统,同时打包工具采用pyinstall ...
- 40、IOS自动打包-Python脚本
第一种:基于编译的打包 编译工程--找到.app文件--新建Payload文件夹--拷贝.app到Payload文件夹--压缩成zip--更改后缀名为ipa--完成! 第二种(有问题,暂时不需要看) ...
- PyInstaller打包python脚本
用python写的工具写好了,想打包然后发给测试同事使用,最后选择了PyInstaller,支持Windows.Linux.OS X,支持打包成一个文件夹或单个EXE文件. 我是直接在线安装的,在 ...
- iOS 多渠道打包 编译脚本
http://webfrogs.me/2012/09/19/buildipa/http://blog.csdn.net/baxiaxx/article/details/8267295http://ic ...
随机推荐
- 了解一下基本的tcp代理配置
我们首先用一个简单例子了解一下基本的tcp代理配置 worker_processes 1; #nginx worker 数量 error_log logs/error.log; #指定错误日志文件路径 ...
- 一份55页Java性能调优PPT分享
提起"肖桦"这个人,相信很多小伙伴对他比较陌生.除去现任唯品会资深技术专家头衔外,他更为技术圈所熟知的是他的著名开源项目:SpringSide. SpringSide是以sprin ...
- 机器学习基础06DAY
模型检验-交叉验证 一般在进行模型的测试时,我们会将数据分为训练集和测试集.在给定的样本空间中,拿出大部分样本作为训练集来训练模型,剩余的小部分样本使用刚建立的模型进行预测. 训练集与测试集 训练集与 ...
- Java集合篇之深入解析LinkedList
写在开头 作为ArrayList的同门师兄弟,LinkedList的师门地位逊色不少,除了在做算法题的时候我们会用到它之外,在实际的开发工作中我们极少使用它,就连它的创造者都说:"I wro ...
- Django实战之文件上传下载
项目介绍 最近学习django,通过文件上传下载这个小项目,总结下常用的知识点. 做这个案例我有以下需求: 1.要支持一次上传多个文件 2.支持上传后记录上传的数据以及列表展示 3.支持下载和删除文件 ...
- [Android逆向] 重打包时报BrutException
执行apktool b --use-aapt2 进行重打包时,重打包失败,抛出异常 apktool b /Users/***/work/appsApk/testApp --use-aapt2 I: U ...
- 【Android 逆向】【ARM汇编】 堆栈
arm 四种栈 1 空栈 栈指针指向空位,每次存入时可以直接存入然后栈指针移动一格:而取出时需要先移动一格才能取出 2 满栈 栈指针指向栈中最后一格数据.每次存入时需要先移动栈指针一格再存入.取出时可 ...
- Xray安全评估工具使用
xray 是一款功能强大的安全评估工具,主要特性有: 检测速度快.发包速度快; 漏洞检测算法高效. 支持范围广.大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持 ...
- ASP.NET Core 微信支付(四)【支付结果通知回调(未按照官方步骤) APIV3】
官方文档 支付通知API 证书和回调报文解密 参考资料 netcore 中没有Request.InputStream 理论实战 对于我来说,这个微信支付结果通知回调有两个难点. 难点一 一开始在想是怎 ...
- 【NLP学习其3.5】词嵌入的特性,为什么词之间会有联系?
词嵌入的特性 现在你有了一堆嵌入向量,我们可以开始学习他们之间的特性了 前情提要:https://www.cnblogs.com/DAYceng/p/14962528.html 先把各向量重新命名便于 ...


