自动化瓦力多渠道打包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 ...
随机推荐
- .NET Core开发实战(第1课:课程介绍)--学习笔记
01 | 课程介绍 讲师介绍 肖伟宇,校宝在线架构师.SkyWalking .NET探针贡献者.NetCorePal组件库创建者 为什么要学习 .NET Core 微软大力支持推动 .Net 技术生态 ...
- 如何在.NET Core中为gRPC服务设计消息
如何在.NET Core中为gRPC服务设计消息 使用协议缓冲区规范定义gRPC服务非常容易,但从需求转换为.NET Core,然后管理服务的演变时,需要注意几件事. 创建gRPC服务的核心是.pro ...
- 吉特日化MES & 日化制药工厂信息化系统架构图
作者:情缘 出处:http://www.cnblogs.com/qingyuan/ 关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路 版权声明:本文版权归作者和博客园 ...
- Js中的位操作符
Js中的位操作符 JavaScript的数字类型为双精度IEEE 754 64位浮点类型,但是在位运算中位运算符用于32位的数字上, 任何的数字操作都将转为32位, 运算结果再转化为Js数字类型. 描 ...
- ORA-31655,ORA-39154 Objects from foreign schemas have been removed from import
问题说明 在执行数据泵导入时提示错误: 问题原因 执行导入的用户缺少导入数据库的权限. 解决问题 给用户赋予导入数据库权限: grant imp_full_database to 用户; 然后重新执行 ...
- 使用xampp安装部署mantis
快速教程请参考: 点击打开链接 http://download.csdn.net/detail/indexman/6830003 --------------------------- Dylan ...
- golang微服务实践:分布式链路追踪系统-jaeger安装与简单使用
简介 jaeger是一个比较有名的分布式链路追踪系统,底层用golang实现,兼容opentracing标准. 文档地址:docs github地址:github 官网:website blog:bl ...
- Generating equals/hashCode implementation but without a call to superclass
Generating equals/hashCode implementation but without a call to superclass1.lombok 警告,没有注入父类的字段当我们给一 ...
- Taurus.MVC WebMVC 入门开发教程7:部分视图和页面片段(结束篇)
本系列的目录大纲为: Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行 Taurus.MVC WebMVC 入门开发教程2:一个简单的页面呈现 Taurus.MVC WebM ...
- vue3页面使用vue2语法
vue3页面: import { getCurrentInstance } from 'vue'; const { proxy } = getCurrentInstance(); proxy...