packer-ng多渠道快速打包

步驟一:

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));

參考友盟集成文檔:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章