步骤一:
1.在整个工程的build.gradle中添加依赖:
dependencies {
compile 'com.mcxiaoke.gradle:packer-ng:1.0.7'
}
2.在Module的build.gradle中配置
apply plugin: 'packer'
dependencies {
compile 'com.mcxiaoke.gradle:packer-ng:1.0.7'
}
可选项(在Module的build.gradle中配置,具体看注释)
packer {
// 是否检查Gradle配置中的signingConfig,默认不检查
checkSigningConfig = true
// 是否检查Gradle配置中的zipAlignEnabled,默认不检查
checkZipAlign = true
// 指定渠道打包输出文件名格式
//包名-渠道名-正式环境(release)-版本名称-版本号-最终APK文件的MD5哈希值
archiveNameFormat = '${appPkg}-${flavorName}-${buildType}-v${versionName}-${versionCode}-${fileMD5}'
// 指定渠道打包输出目录
archiveOutput = file(new File(project.rootProject.buildDir.path, "easyto_apks"))
/* // 指定渠道打包需要修改的AndroidManifest文件项
manifestMatcher = ['UMENG_CHANNEL', 'Promotion_Market']*/
// 指定是否使用build版本号自增
buildNumberAuto = true
// 指定使用版本号自增的buildType,默认是全部
buildNumberTypeMatcher = ['release', 'beta']
}
步骤二:
1.在gradle.properties里加入 market =markets.txt
market:是渠道名列表文件,基于项目根目录的相对路径(我这里是放置在项目的根目录下,跟gradle.properties同层)
2.编写渠道文件markets.txt
渠道名和注释之间用#号分割开,可以没有注释
如下:
Google_Market#Google电子市场 Hiapk_Market#安卓市场 Yingyonghui_Market#应用汇市场 ali_market#阿里云商店 Xiaomi_Market#小米市场 Yingyongbao_Market#腾讯应用宝市场 Samsung_Market#三星市场 OPPO_Market#OPPO市场 Huawei_Market#华为市场 amazon_market#亚马逊市场 Meizu_Market#魅族市场 3G_market#3G安卓市场 WanDouJia_Parter#豌豆荚 Baidu_Market#百度应用中心 360_Market#360手机助手 Taobao_Market#淘宝应用市场
注意:
packer-ng:1.0.7 要和 packer-helper:1.0.7的版本一致
最后编译:可以使用我在gradle.properties中的两句命令(Release,Debug)
Release: ./gradlew clean apkRelease -Pmarket=markets.txt
Debug: ./gradlew clean apkDebug -Pmarket=markets.txt
集成友盟多渠道打包:
同时满足下面两个条件才需要此配置:
// 1. Gradle版本 >= 2.14.1
// 2. Android Gradle Plugin 版本 >= 2.2.0
// 作用是只使用旧版签名,禁用V2版签名模式 v2SigningEnabled false 如果项目集成了友盟 就在程序的入口处这样写(动态的设置友盟渠道名):
// 如果没有使用PackerNg打包添加渠道,默认返回的是""
// com.mcxiaoke.packer.helper.PackerNgString market = PackerNg.getMarket(this);
// 或者使用 PackerNg.getMarket(Context,defaultValue)// 之后就可以使用了,比如友盟可以这样设置MobclickAgent. startWithConfigure( new MobclickAgent.UMAnalyticsConfig(this, APP_KAY, market, MobclickAgent.EScenarioType.E_UM_NORMAL,true));
参考友盟集成文档: