如题,使用美团walle进行多渠道打包。
关于安卓原生打包,请移步上一篇文章:原生多渠道打包
官网教程:
https://github.com/Meituan-Dianping/walle
代码地址在文末~~~
马上发车
(一)生成签名,并在主项目build.gradle配置
核心代码如下:
注意,不使用签名会在编译阶段null point错误。
(二)导入walle相关依赖
根build.gradle文件依赖如下图:
主项目buill.gradle新增配置如下:
至此,依赖配置完成。
(三)配置walle打包参数
直接在主项目的build.gradle文件中配置,代码如下:
/**
* apkOutputFolder:指定渠道包的输出路径, 默认值为new File("${project.buildDir}/outputs/apk")
* channelFile:包含渠道配置信息的文件路径。
* 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 名
* */
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")
}
对于channel文件,放在了app目录下,如下图:
至此,配置完毕
(四)开始打包
打开androidstudio并在terminal输入相关指令,这里我输入的是全渠道打包指令:
gradlew clean assembleReleaseChannels
另外的指令,也可在github官网查询得到。
最后打包完成后的目录结构图片如下:
最后,附上源码demo:传送门
that's all---------------------------------------------------------------------------
备注,对于加固失效问题,请移步官方指引:加固失效