在整個工程的build.gradle中配置:
dependencies { classpath 'com.mcxiaoke.gradle:packer-ng:1.0.7' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files}然后在 Module的build.gradle中配置
apply plugin: 'packer'dependencies {compile 'com.mcxiaoke.gradle:packer-helper:1.0.7'} 第二步:1. 在
gradle.PRoperties
里加入market=yourMarketFilePath
market
:代表渠道名列表文件,基于項目根目錄的相對路徑(假設你的項目位于
~/github/myapp
你的market文件位于~/github/myapp/config/markets.txt
那么參數應該是-Pmarket=config/markets.txt
)
yourMarketFilePath
:渠道文件的路徑。
如果你執行了這一步,則之后打包時可以直接使用gradlew (clean) apkRelease命令打多渠道包,其中clean可有可無;
如果你沒有在
gradle.properties
里加入market=yourMarketFilePath,則之后打包時要用gradlew -Pmarket=market.txt (clean) apkRelease命令打多渠道包。
第三步(編寫渠道文件如上圖的:markets.text):
渠道名和注釋之間用
#
號分割開,可以沒有注釋,示例yingyongso_market#應用搜 3G_market#3G安卓市場 WanDouJia_Parter#豌豆莢商店 Baidu_Market#百度應用中心 360手機助手#360手機助手 Nduo_Market#N多市場注意:
1. packer-ng:1.0.7 要和 packer-helper:1.0.7的版本一致2 同時滿足下面兩個條件才需要此配置: // 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));參考友盟集成文檔:
可選項(具體看注釋):
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']}最后(在項目根目錄執行):
gradlew -Pmarket=markets.txt clean apkRelease如圖:執行完后就可以在根目錄的build文件夾中看到打包完畢的apk了
速度可不是一般的快!
新聞熱點
疑難解答