前言:
關(guān)于Android渠道打包是一個(gè)比較老的話題,今天主要記錄總結(jié)一下多渠道打包以及如果動(dòng)態(tài)配置修改一些資源屬性。今天以公司實(shí)際需求為例進(jìn)行演示,由于項(xiàng)目復(fù)用很多公共的業(yè)務(wù)組件,而且業(yè)務(wù)組件之間的跳轉(zhuǎn)采用Scheme協(xié)議,每個(gè)業(yè)務(wù)組件的host地址不變,所以需要在打包的時(shí)候動(dòng)態(tài)修改scheme協(xié)議名字。為了方便舉例,首先我們這里假設(shè)我們一個(gè)App要打出兩個(gè)不同的渠道,方便進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。
第一步聲明一個(gè)渠道參數(shù) AndroidManifest.xml中
<meta-data android:name="APP_CHANNEL" android:value="external" />
為了方便通過gradle自動(dòng)替換,value需要替換成標(biāo)記位的方式
<meta-data android:name="APP_CHANNEL" android:value="${APP_CHANNEL}" />
第二步在gradle中利用productFlavors聲明渠道類型,
比如我們這里聲明一個(gè)外部版本一個(gè)內(nèi)部版本,manifestPlaceholders 替換AndroidManifest中的
${APP_CHANNEL}值
productFlavors { external { manifestPlaceholders = [APP_CHANNEL: "external"] } internal { manifestPlaceholders = [APP_CHANNEL: "internal"] &n