步驟一:
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));
參考友盟集成文檔: