Android 批量打包 基于Walle的多渠道快速打包自动脚本
来源:互联网 发布:新浪足球数据库 编辑:程序博客网 时间:2024/05/28 22:13
Android 批量打包 基于Walle的多渠道快速打包自动脚本
Android Signature V2 Scheme签名下的新一代渠道包打包神器
github主页:https://github.com/Meituan-Dianping/walle
当然了,Walle并不是为了解决打包速度而产生的一个工具,美团研究walle的原因是因为在Android 7.0(Nougat)推出了新的应用签名方案>APK Signature Scheme v2后,之前快速生成渠道包的方式(美团>Android自动化之旅—生成渠道包)已经行不通了,具体可以看看Walle自己是怎么说的。
Walle的使用
android { //签名 引用位置 signingConfigs { sankuai { storeFile file("keystore/123keyStore.jks") storePassword "123456" keyAlias "key" keyPassword "123456" } } //调用签名设置 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.sankuai } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.sankuai } } //个性化设置 productFlavors { honry { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "honry"] } }}//配置 build.gradle//在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:buildscript { dependencies { classpath 'com.meituan.android.walle:plugin:1.1.5' }}//并在当前App的 build.gradle 文件中apply这个插件,并添加上用于读取渠道号的AARapply plugin: 'walle'dependencies { compile 'com.meituan.android.walle:library:1.1.5'}
Walle信息配置
//在当前App的 build.gradle 中添加如下信息walle { // 指定渠道包的输出路径 apkOutputFolder = new File("${project.buildDir}/outputs/channels"); // 定制渠道包的APK的文件名称 apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'; // 渠道配置文件 channelFile = new File("${project.getProjectDir()}/channel")}配置项具体解释:apkOutputFolder:指定渠道包的输出路径, 默认值为new File("${project.buildDir}/outputs/apk")apkFileNameFormat:定制渠道包的APK的文件名称, 默认值为'${appName}-${buildType}-${channel}.apk'可使用以下变量:projectName - 项目名字 appName - App模块名字 packageName - applicationId (App包名packageName) buildType - buildType (release/debug等) channel - channel名称 (对应渠道打包中的渠道名字) versionName - versionName (显示用的版本号) versionCode - versionCode (内部版本号) buildTime - buildTime (编译构建日期时间) fileSHA1 - fileSHA1 (最终APK文件的SHA1哈希值) flavorName - 编译构建 productFlavors 名channelFile:包含渠道配置信息的文件路径。 具体内容格式详见:渠道配置文件示例,支持使用#号添加注释。
channel文件
meituan # 美团samsungapps #三星hiapkanzhixiaomi # 小米91comgfanappchinanduoa3gcnmumayi10086comwostore189storelenovommhicloudmeizuwandou# Google Play# googleplay# 百度baidu## 360360cn## 应用宝myapp
用法示例:在Android Studio的Terminal命令行输入确保在同一个项目根目录下
生成渠道包 :gradlew clean assembleReleaseChannels支持 productFlavors : gradlew clean assembleMeituanReleaseChannels
用AndroidStudio 打包
项目依赖成功后,双击项目Gradle projects—>项目名—>package—>assembleReleaseChannels
命令行输入打包
下载walle-cli-all.jar文件
执行命令:命令一:(单个写入,如果未指定目录,生成的新Apk与[apk路径]同级目录)java -jar walle-cli-all.jar put -cqiyu C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools.apkjava -jar walle-cli-all.jar put -c[渠道名] [apk路径]java -jar walle-cli-all.jar put -c[渠道名] [apk路径] [生成的apk路径(可选)]命令二:(批量写入,如果未指定目录,生成的新apk与[apk路径]同级目录)java -jar walle-cli-all.jar batch-f C:\Users\apksigner\channel C:\Users\apksigner\qiyu_tools.apk C:\Users\apksigner\apkjava -jar walle-cli-all.jar batch-f [渠道文件] [apk路径] [生成的新apk路径(可选)]
原始方法打包 在项目的gradle中定义flavorDimensions 增加多种维度
谷歌官方解说:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html?utm_source=android-studio#variant_aware
android{ flavorDimensions "fruit","hais" //定义 Specifies two flavor dimensions. productFlavors{ mh{ dimension "fruit" } mhss{ dimension "hais" } }}
阅读全文
0 0
- Android 批量打包 基于Walle的多渠道快速打包自动脚本
- 基于Walle的多渠道快速打包自动脚本
- 基于Walle的多渠道快速打包自动脚本
- Android使用walle多渠道打包
- Walle多渠道打包
- Android多渠道批量打包
- Android快速多渠道打包
- android多渠道快速打包
- android 多渠道自动打包
- Android 多渠道自动打包
- android App使用360加固,walle多渠道打包
- Android:Ant 批量多渠道打包
- python: android批量多渠道打包
- android Ant 批量多渠道打包!
- android ant 多渠道批量打包
- android Ant 批量多渠道打包
- android ant 多渠道批量打包
- android Ant 批量多渠道打包
- Qt之生成png/jpg/bmp格式图片
- 让你的Idea高大上--activate-power-mode-master
- python web开发——Django后台管理
- 哈夫曼编码大全
- 模板模式
- Android 批量打包 基于Walle的多渠道快速打包自动脚本
- CSP(Content Security Policy),在一定程度上能预防XSS攻击
- SQL反模式(七)
- Pass的通用指令开关
- 投资后的收获
- 习题8-3 比特变换器(Bits Equalizer, SWERC 2012, UVa12545)
- 阿里云centos6.9经典网络下配置gre隧道地址
- Math类
- SpringBoot@Autowired不自动注入