ant單個或多個渠道包打包參考文件
操作方法:
1、 單個渠道包
1、下載ant,並配置環境變數
並且配置AndroidSDKTools環境變數
2、測試ant以及android命令是否安裝成功,下圖表明已安裝成功
3、build.xml和 local.properties目錄自動生成
執行cmd定位到專案根目錄下,執行android update project -p <project> -t <target>
<project>為專案全路徑,<target>為API版本。
build.xml檔案中<project name="Babyshow"default="help"
4、 新建ant.properties在專案工程根目錄下,內容如下:(密碼自己變更)
key.store=suning.keystore
key.store.password=SuningXXXX
key.alias=suning
key.alias.password=SuningXXXX
5、 將key檔案放置在當前專案根目錄下
6、 進行打包CMD執行 ant cleanrelease
打包成功後即可在bin目錄下看見Babyshow-release.apk。
2、 多個渠道包
1、步驟1-5參考單個渠道包
2、修改ant.properties配置檔案
增加兩行,分別為渠道包名稱以及版本號
key.store=suning.keystore
key.store.password=Suning1234
key.alias=suning
key.alias.password=Suning1234
market_channels=91,360,wandoujia,baidu
version=2.0
3、修改build.xml配置檔案
在第三行增加(<project name="Babyshow"default="help">行下)
<!-- 渠道包打包指令碼 ant deploy-->
<taskdef resource
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<target name="deploy">
<foreach target="modify_manifest" list="${market_channels}" param="channel" delimiter=",">
</foreach>
</target>
<target name="modify_manifest">
<replaceregexp flags="g" byline="false">
<!-- 匹配的內容是android:value="*****" android:name="UMENG_CHANNEL" -->
<regexp pattern='android:value="(.*)"android:name="BaiduMobAd_CHANNEL"' />
<!-- 匹配之後將其替換為 android:value="渠道名" android:name="UMENG_CHANNEL" -->
<substitution expression='android:value="${channel}"android:name="BaiduMobAd_CHANNEL"' />
<!-- 正則表示式需要匹配的檔案為AndroidManifest.xml-->
<fileset dir=""includes="AndroidManifest.xml" />
</replaceregexp>
<property name="out.release.file" location="${out.absolute.dir}/${ant.project.name}_${channel}.apk"/>
<!--包 -->
<antcall target="release" />
<!--輸出渠道包到bin/out目錄下 -->
<copy tofile="${out.absolute.dir}/out/${ant.project.name}v${version}-${channel}.apk"file="bin/${ant.project.name}-release.apk"/>
</target>
4、實現批量迴圈打包需要一個類似於for迴圈的功能,在Ant的核心包裡沒有相關的For迴圈的Task,即不支援for迴圈,但是ant支援第三方擴充套件包,以支援更多的其他功能。
下載後的解壓得到的jar檔案放到ant的lib目錄。
5、執行antdeploy 命令即可迴圈打包。最好提前執行下ant clean