android:scheme="package",Android Signature V2 Scheme簽名下批量生成渠道包

准備工作

簽署配置

422bbabf9bb2164788e1311dcb817052.png

release

886c2e59133c4cdd00db233d7e1b38b2.png

然后你的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'

}

}

2ffdbc34715b07b155df5199e399a030.png

並在當前App的 build.gradle 文件中apply這個插件,並添加上用於讀取渠道號的AARapply plugin: 'walle'

dependencies {

compile 'com.meituan.android.walle:library:1.0.0'

}

bfb28c6b7e89310694bd12210f5d8beb.png

配置插件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)

}

說了一堆廢話,說白點方法2就是無視walle里面的渠道配置文件,就那么簡單!

6a3406d7cea8e598b5be13b7eec24bc1.png

fb74ca7220b379691b7e3dab4aa927f5.png

3bea7bcf2539f6271c85fe7e50572324.png

原理介紹

對該工具的原理感興趣的同學,可以移步美團Android新一代渠道包生成工具進行了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值