Android Signature V2 Scheme签名下批量生成渠道包

瓦力是一款由美团推出的Android渠道包打包工具,通过在Apk中的APKSignatureBlock区块添加自定义的渠道信息来提高打包效率。支持Gradle插件和命令行两种使用方式,能够简化多渠道发布流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

创建调试证书以及配置构建流程以自动签署您的 APK

签署配置

这里写图片描述

release

这里写图片描述

然后你的app build.gradle里面就会出现以下代码!

signingConfigs {
        sankuai {
            storeFile file("keystore/meituan-debug.keystore")
            storePassword "1234567"
            keyAlias "meituan"
            keyPassword "12345678"
        }
    }

Wall


Walle(瓦力):Android Signature V2 Scheme签名下的新一代渠道包打包神器

瓦力通过在Apk中的APK Signature Block区块添加自定义的渠道信息来生成渠道包,从而提高了渠道包生成效率,可以作为单机工具来使用,也可以部署在HTTP服务器上来实时处理渠道包Apk的升级网络请求。

Quick Start


为了方便大家的使用,我们提供了2种使用方式:

  • Gradle插件方式,方便快速集成
  • 命令行方式,最大化满足各种自定义需求

Gradle插件使用方式

配置build.gradle

在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:

buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.0.0'
    }
}

在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖

并在当前App的 build.gradle 文件中apply这个插件,并添加上用于读取渠道号的AAR

apply plugin: 'walle'

dependencies {
    compile 'com.meituan.android.walle:library:1.0.0'
}

在当前App的 build.gradle 文件中apply这个插件,以及配置插件

配置插件

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")
}

如何生成渠道包

用法示例:

1.通过项目channel配置文件生成渠道包√
./gradlew clean assembleReleaseChannels

//必须配置渠道配置文件
//channelFile = new File(“${project.getProjectDir()}/channe”)

walle {
    // 指定渠道包的输出路径
    apkOutputFolder = new File("${project.buildDir}/outputs/channels");
    // 定制渠道包的APK的文件名称
    apkFileNameFormat = '${appName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
    //如果是通过项目channel配置文件生成渠道包 此渠道文件必须配置
    //channelFile = new File("${project.getProjectDir()}/channel)
}

2.通过渠道配置文件(gradlew)来生成渠道包√
./gradlew clean assembleReleaseChannels -PchannelFile=channel


如果通过渠道配置文件来生成渠道包,渠道配置文件配不配置都无所谓,因为./gradlew clean assembleReleaseChannels -PchannelFile=channel -PchannelFile=channel 已经指定了渠道文件,注:这里指定的是项目根目录下的channle文件,不是app目录下的channle文件,这也是默认渠道配置路径,

即,
1:配置了channelFile = new File("${project.getProjectDir()}/channel),调用./gradlew clean assembleReleaseChannels -PchannelFile=channel 优先级别高于walle配置 channelFile = new File("${project.getProjectDir()}/channel),所以不会引用walle渠道配置指定目录!

2:walle 渠道文件可以不配置,默认就是通过渠道配置文件(gradlew)找到位于项目的根目录下的channle文件!

walle {
    // 指定渠道包的输出路径
    apkOutputFolder = new File("${project.buildDir}/outputs/channels");
    // 定制渠道包的APK的文件名称
    apkFileNameFormat = '${appName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
    //如果是通过项目channel配置文件生成渠道包 此渠道文件必须配置
    //channelFile = new File("${project.getProjectDir()}/channel)
}


3:如果你有多个渠道比如:online , onlineTest, offline,那么./gradlew clean assembleReleaseChannels -PchannelFile=channel, 执行是无效的!
必须指定打生成的渠道,比如./gradlew clean assembleOnlineReleaseChannels -PchannelFile=channel

说了一堆废话,说白点方法2就是无视walle里面的渠道配置文件,就那么简单!

这里写图片描述


执行./gradlew clean assembleReleaseChannels -PchannelFile=channel  语句


批量生成渠道包成功

原理介绍


对该工具的原理感兴趣的同学,可以移步美团Android新一代渠道包生成工具进行了解。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值