Unity導(dǎo)出的安卓工程利用ant進(jìn)行多渠道循環(huán)批量打包
做android開發(fā)的配置這個是基礎(chǔ)赡茸。
http://www.cnblogs.com/zhj5chengfeng/archive/2013/01/01/2841253.html
二:配置Android的SDK環(huán)境變量
除了需要Java的環(huán)境變量昔逗,我們還需要配置Android的sdk的位置,名字是ANDROID_HOME裕循,值就是你的android的sdk的位置,比如我的容客,就如下所示:
二:安裝ant并設(shè)置ant環(huán)境變量
1凛驮、在Ant官網(wǎng)(http://ant.apache.org/bindownload.cgi)下載最新Ant包棒假,在http://sourceforge.net/projects/ant-contrib/files下載Ant擴(kuò)展包ant-contrib-1.0b3.jar(這個包就是用于循環(huán)編譯多個渠道包)。
2烂瘫、將Ant包解壓到常用開發(fā)工具目錄(自行選擇媒熊,我的放在D:/Dev目錄下),然后將下載下來的Ant擴(kuò)展包ant-contrilb拷貝到Ant安裝目錄下的lib文件夾中奇适。
3、設(shè)置Ant環(huán)境變量:ANT_HOME芦鳍,變量值指向ant目錄嚷往。
4、在環(huán)境變量Path里增加:%ANT_HOME%/bin;%ANT_HOME%/lib;
5柠衅、設(shè)置好了之后驗證一下皮仁。打開CMD輸入ant -version命令出現(xiàn)下面反饋,說明ant安裝成功
三菲宴、配置打包項目
Unity中導(dǎo)出Android項目
導(dǎo)出項目文件目錄如下:
導(dǎo)入到Eclipse中
在AndroidMainfest.xml中的application標(biāo)簽下添加一個用來識別渠道的標(biāo)簽
如果出現(xiàn)問題贷祈,修改之后彈出錯誤,請選擇快速修正
1喝峦、生成build.xml文件
打開cmd并進(jìn)入到C:\Users\Administrator\Desktop\Test\4\com.game.qq這個項目目錄下 使用android update project -n com.game.qq -p .命令(注意-n表示項目的名稱,-p參數(shù)后面有個點表示當(dāng)前目錄势誊,-p后面還有一個點(.))。
注意:如果是Unity打包出來的Android工程谣蠢,-n后面加入的名稱一定要與Unity中PlayerSetting-BundleIdentifier中的名稱一致
執(zhí)行這個命令后粟耻,會在項目中自動生成build.xml和local.properties文件。
編輯build.xml文件
"${sdk.dir}/tools/ant/build.xml"/>
"out.unaligned.dir"value="C:/Users/Administrator/Desktop/Test/4/"/>
"${out.unaligned.dir}"/>
"modify_update_file">
***********************
make channel ${channel}
"AndroidManifest.xml"
match='channel'
replace='${channel}'
byline="false"
encoding="utf-8"
/>
"out.unaligned.file"location="${out.unaligned.dir}/HelloWorld_${app_version}_${channel}_android.apk"/>
"make_one_channels"depends="savemanifest,modify_update_file,release,replacemanifest,deletebin"description="description">
"replacemanifest">
***********************
replacemanifest
"${basedir}\AndroidManifest.xml"/>
"..\temp\build\META-INF\AndroidManifest.xml"todir="${basedir}"encoding="utf-8"/>
"savemanifest">
***********************
savemanifest
"${basedir}\AndroidManifest.xml"todir="..\temp\build\META-INF"encoding="utf-8"/>
"deletebin">
"${basedir}\bin"/>
"foreach"classname="net.sf.antcontrib.logic.ForEach"classpath="D:/AndroidSDK/tools/lib/ant-contrib-1.0b3.jar"/>
"make_channels">
"make_one_channels"list="${market_channels}"delimiter=","param="channel">
打包的過程:
(1)第36行make_channels的target是ant的入口眉踱,該target中使用foreach循環(huán)調(diào)用名為make_one_channels的target(第17行)并把market_channels集合中的每個值替換給channel
(2)make_one_channels的target指定了每次打包的過程:
savemanifest:打包前先將原始的AndroidManifest.xml復(fù)制到與項目同一層級目錄下的temp下build下META-INF中
modify_update_file:匹配到AndroidManifest.xml中的channel并將其替換
release:自動編譯加簽名
replacemanifest:刪除AndroidManifest.xml挤忙,將temp/build/META-INF中的原始AndroidManifest.xml復(fù)制回項目根目錄下
deletebin:刪除bin文件(注:這步很重要,否則只能打出一個渠道的APK勋锤,當(dāng)時做這塊的時候碰到的問題)
打包方法的使用
打開cmd終端饭玲,執(zhí)行cd C:\Users\Administrator\Desktop\Test\4\com.game.qq
注意在運(yùn)行之前要注意先clean一下項目,不然可能會報錯誤,切記H础G牙濉!谈宛!
需要在cmd終端次哈,項目目錄路徑下執(zhí)行ant clean
BUILD?FAILED
D:\AndroidSDK\tools\ant\build.xml:649: The following error occurred while executing this line:
D:\AndroidSDK\tools\ant\build.xml:694: return 1
然后執(zhí)行
ant make_channels
如果項目中引入了第三方工程library,比如我的項目吆录,引入三個第三方工程:
如果執(zhí)行打包命令窑滞,那么會報錯,這是因為那個library 還不支持ant自動編譯恢筝,我們需要先讓它也支持(注意:第三方工程要設(shè)置為Lib:
project->properties->Android->Library->Is Library 這個勾選上)哀卫。
進(jìn)入到library項目所在的目錄,輸入命令 android update lib-project -p ./ ?(注意是 lib-project)撬槽;
執(zhí)行完之后此改,你會發(fā)現(xiàn)第三方工程目錄下多了build.xml文件和local.properties文件。然后你在執(zhí)行打包命令就可以成功打包了侄柔。
查看結(jié)果