上篇介紹了怎麼使用ant自動編譯打包現有的android項目,這篇將繼續介紹若是如何在ant打包應用的時候加入簽名信息以及自動打包渠道包。html
1. 加入簽名信息:
在項目的根目錄下建一個ant.properties文件,輸入以下內容,其中keystore密碼和alias密碼能夠不指定(防泄漏),那麼在命令執行的過程當中會要求你輸入。android
- #keystore的路徑,必須使用正斜槓
- key.store=E:/wp_android_sample/me.key
- #keystore的密碼
- #key.store.password=*****
- #alias名
- key.alias=me
- #alias密碼
- #key.alias.password=******
在項目根目錄下運行 ant release 命令就會幫你生成一個通過簽名和aligned的apk,生成的apk(your_project_name-release.apk)在bin目錄下正則表達式
2. 自動打包渠道包:
實現批量循環打包須要一個相似於for循環的功能,在Ant的核心包裏沒有相關的For循環的Task,即不支持for循環,可是ant支持第三方擴展包,以支持更多的其餘功能。express
因而咱們要下載相應的支持for循環的擴展包。能夠使用開源的Ant-contrib包。下載地址:http://ant-contrib.sourceforge.net/ 。ui
下載後的解壓獲得的jar文件放到ant的lib目錄。接下來咱們就能夠打包渠道包了,具體作法是:spa
(1)首先在ant.properties文件中增長屬性 market_channels (渠道列表,以逗號分割),version(應用程序版本名).net
- #渠道市場列表
- market_channels=91,360,wandoujia,baidu
- #版本號
- version=1.2.1
(2)在咱們項目的build.xml中加入以下代碼:code
-
- <taskdef resource="net/sf/antcontrib/antcontrib.properties">
- <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">
- <!-- 加上時間戳 -->
- <tstampprefix="build.">
- <formatproperty="TimeSign" pattern="yyyyMMddHHmm"/>
- </tstamp>
- <replaceregexp flags="g" byline="false">
-
- <regexp pattern='android:value="(.*)" android:name="UMENG_CHANNEL"' />
-
- <substitution expression='android:value="${channel}" android:name="UMENG_CHANNEL"' />
-
- <fileset dir="" includes="AndroidManifest.xml" />
- </replaceregexp>
- <property name="out.release.file" location="${out.absolute.dir}/${ant.project.name}_${channel}.apk" />
-
- <antcall target="release" />
-
- <copy tofile="${out.absolute.dir}/out/${ant.project.name}v${version}-${channel}.apk" file="bin/${ant.project.name}-release.apk"/>
- </target>
在項目根目錄下運行 ant clean 無誤後再運行 ant deploy 命令就會幫你各個渠道的簽名包了(爲了全程能夠自動執行,ant.properties文件中的keystore的密碼能夠指定,這樣在執行過程當中就不須要手動輸入密碼了),在bin目錄的out目錄下。regexp