您好,登錄后才能下訂單哦!
最近剛忙完了一個項目,本以為可以好好放松一下了,沒想到客戶提了一個變態(tài)的要求,同時要打包上線100多個渠道,需要替換圖標(biāo),啟動頁還有一堆煩人的參數(shù),粗略估計一個一個打包,至少兩天時間,真是醉了。心中一陣草泥馬飛過之后,想著自己的尾款還沒到賬,只能硬著頭皮搞一個自動化的打包腳本。
1、首先安裝ant ,下載地址http://ant.apache.org/不會安裝的可以參考http://yarin.blog.51cto.com/1130898/692569。
2、利用Ant批量打包的基本思想是,每次打包后自動替換渠道號,以及自己要替換的參數(shù),比如本demo就要不僅要替換渠道號,一些參數(shù),還要替換圖標(biāo)和啟動頁面。
這樣帶來了一個問題:Ant不支持循環(huán),怎樣循環(huán)打包?
擴(kuò)展包Ant-contrib能輕松解決這個問題
可以×××的同學(xué)可以到http://ant-contrib.sourceforge.net/自行下載,或者去我的云空間下載http://pgyer.qiniudn.com/ant-contrib-1.0b3.jar,下載后直接把ant-contrib-1.0b3.jar放到Ant的lib文件夾即可。
3、生成并改寫build.xml 執(zhí)行如下命令
android update project --name testbyfrank -t 1 -p /Users/frank/Documents/workspace/testbyfrank
此命令在當(dāng)前的工程目錄生成build.xml, -t 表示targetid 可以通過android list targets查看 -p 指定工程目錄
修改build.xml 代碼見demo
4、生成ant.properties 內(nèi)容如下:market_channels是用來替換的參數(shù)以:和-分割。
java.encoding=utf-8
out.absolute.dir=/Users/frank/Documents/publish_testbyfrank
gos.path=/Users/frank/Documents/publish_testbyfrank_bin
proguard.config=proguard.cfg
app_version=1.5
market_channels=\u65B0\u77E5:60-xinzhi,\u897F\u5149:18-xiguang
5、project.properties文件中打開混淆代碼,去掉下面所在行的#
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
6、編寫proguard-project.txt,demo中有,大家自行刪減
6、執(zhí)行命令ant deploy就慢慢等待生成的多渠道的apk吧
7、最后在目錄/Users/frank/Documents/publish_testbyfrank_bin下生成了兩個apk
testbyfrank_xiguang.apk 和testbyfrank_xinzhi.apk
自己抽離出來的demo已經(jīng)經(jīng)過我的測試沒有問題,大家可以通過http://pgyer.qiniudn.com/testbyfrank.zip下載示例代碼。
注意事項及可能遇到的問題
1.工程如果引用到其它類庫工程,請先生成類庫的build.xml
2.如果提示invalid resource directory name: /Users/frank/Documents/workspace/appcompat_v7/bin/res/crunch等類似的錯誤請先手動刪除bin目錄,重新執(zhí)行ant deploy命令
3.如果出現(xiàn)Can't read [/Users/frank/Documents/workspace/testbyfrank/libs/Android_Location_V1.1.0.jar] (No such file or directory)類似的錯誤,表明你沒有用到這個類庫,請在混淆文件中去掉對應(yīng)的即可。
4.如果xml文件有用到自定義的控件,對應(yīng)的java文件不能混淆
5.如果用的gson的庫,對應(yīng)的實體類不可以混淆。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。