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