声明
该配置主要解决打包apk/aab需要动态修改渠道字段,方便区分渠道上架国内商店。
暂不支持批量打包(7.4版本无法通过只修改outputFileName的形式批量处理)
因为构建时需要拷贝/创建Output,然后修改outputFileName才能处理批量打包,但拷贝/创建在高版本中失效了。
目前的操作需要再配置中修改渠道名(eg:Huawei),通过“Genderate Signed App Buyndle or APK” 打包时,会自动重命名,然后复制到同级目录下(防止下次打包会自动删除的问题)
打包流程:
1.编译完成后生成 xxx.apk
2.复制 xxx.apk 至 outputsDebug 文件夹
3.重命名文件为xxx_huawei.apk
该模式即便将huawei修改为xiaomi再次构建,xxx_huawei.apk也不会删除
如果 “Genderate Signed App Buyndle or APK” 中配置了 debug/release等形式,
也会自动区分,并且输出对应的文件夹,例如:outputsDebug / outputsRelease
Gradle 环境
Android Gradle Plugin Version
7.4.2
Gradle Version
7.5
当前环境下似乎不支持批量打包,所以当前的打包形式为:
输出打包文件 -> 复制文件 -> 更改文件名
每次需要修改Gradle配置的渠道名,但不需要复制文件(因为上次打包的文件默认会被删除)
创建渠道配置文件
1.项目根目录 build.gradle 同级目录下创建 channel_config.gradle 文件
ext {
/* START 渠道配置 */
// No modification required
abiGroup = [ "arm64-v8a", "armeabi-v7a" ]
// 需要编译的变体
// No modification required
buildVariants = [ "huaweiStoreOverseas", "chinesePay" ]
// 最终输出的目录在debug/release目录的上一级,目录名为 outputs
// No modification required
channels = [ "Huawei", "Xiaomi", "vivo", "OPPO", "Tencent