Unity導(dǎo)出的安卓工程利用ant進(jìn)行多渠道循環(huán)批量打包
做android開發(fā)的配置這個(gè)是基礎(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(這個(gè)包就是用于循環(huán)編譯多個(gè)渠道包)。
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è)置好了之后驗(yàn)證一下。打開CMD輸入ant -version命令出現(xiàn)下面反饋,說明ant安裝成功

三、配置打包項(xiàng)目
Unity中導(dǎo)出Android項(xiàng)目

導(dǎo)出項(xiàng)目文件目錄如下:

導(dǎo)入到Eclipse中

在AndroidMainfest.xml中的application標(biāo)簽下添加一個(gè)用來識(shí)別渠道的標(biāo)簽
如果出現(xiàn)問題,修改之后彈出錯(cuò)誤,請(qǐng)選擇快速修正
1、生成build.xml文件
打開cmd并進(jìn)入到C:\Users\Administrator\Desktop\Test\4\com.game.qq這個(gè)項(xiàng)目目錄下 使用android update project -n com.game.qq -p .命令(注意-n表示項(xiàng)目的名稱,-p參數(shù)后面有個(gè)點(diǎn)表示當(dāng)前目錄,-p后面還有一個(gè)點(diǎn)(.))。
注意:如果是Unity打包出來的Android工程,-n后面加入的名稱一定要與Unity中PlayerSetting-BundleIdentifier中的名稱一致


執(zhí)行這個(gè)命令后,會(huì)在項(xiàng)目中自動(dòng)生成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集合中的每個(gè)值替換給channel
(2)make_one_channels的target指定了每次打包的過程:
savemanifest:打包前先將原始的AndroidManifest.xml復(fù)制到與項(xiàng)目同一層級(jí)目錄下的temp下build下META-INF中
modify_update_file:匹配到AndroidManifest.xml中的channel并將其替換
release:自動(dòng)編譯加簽名
replacemanifest:刪除AndroidManifest.xml,將temp/build/META-INF中的原始AndroidManifest.xml復(fù)制回項(xiàng)目根目錄下
deletebin:刪除bin文件(注:這步很重要,否則只能打出一個(gè)渠道的APK,當(dāng)時(shí)做這塊的時(shí)候碰到的問題)
打包方法的使用
打開cmd終端,執(zhí)行cd C:\Users\Administrator\Desktop\Test\4\com.game.qq
注意在運(yùn)行之前要注意先clean一下項(xiàng)目,不然可能會(huì)報(bào)錯(cuò)誤,切記?。。。?br>
需要在cmd終端,項(xiàng)目目錄路徑下執(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
如果項(xiàng)目中引入了第三方工程library,比如我的項(xiàng)目,引入三個(gè)第三方工程:

如果執(zhí)行打包命令,那么會(huì)報(bào)錯(cuò),這是因?yàn)槟莻€(gè)library 還不支持ant自動(dòng)編譯,我們需要先讓它也支持(注意:第三方工程要設(shè)置為Lib:
project->properties->Android->Library->Is Library 這個(gè)勾選上)。
進(jìn)入到library項(xiàng)目所在的目錄,輸入命令 android update lib-project -p ./ ?(注意是 lib-project);

執(zhí)行完之后,你會(huì)發(fā)現(xiàn)第三方工程目錄下多了build.xml文件和local.properties文件。然后你在執(zhí)行打包命令就可以成功打包了。

查看結(jié)果
