整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK

Unity导出的安卓工程利用ant进行多渠道循环批量打包

一:设置JAVA环境变量

做android开发的配置这个是基础。

win7 下配置java环境变量,下面是链接

http://www.cnblogs.com/zhj5chengfeng/archive/2013/01/01/2841253.html

二:配置Android的SDK环境变量

除了需要Java的环境变量,我们还需要配置Android的sdk的位置,名字是ANDROID_HOME,值就是你的android的sdk的位置,比如我的,就如下所示:

二:安装ant并设置ant环境变量

1、在Ant官网(http://ant.apache.org/bindownload.cgi)下载最新Ant包,在http://sourceforge.net/projects/ant-contrib/files下载Ant扩展包ant-contrib-1.0b3.jar(这个包就是用于循环编译多个渠道包)。

2、将Ant包解压到常用开发工具目录(自行选择,我的放在D:/Dev目录下),然后将下载下来的Ant扩展包ant-contrilb拷贝到Ant安装目录下的lib文件夹中。

3、设置Ant环境变量:ANT_HOME,变量值指向ant目录。

4、在环境变量Path里增加:%ANT_HOME%/bin;%ANT_HOME%/lib;

5、设置好了之后验证一下。打开CMD输入ant -version命令出现下面反馈,说明ant安装成功

三、配置打包项目

Unity中导出Android项目

 

导出项目文件目录如下:

导入到Eclipse中

在AndroidMainfest.xml中的application标签下添加一个用来识别渠道的标签

如果出现问题,修改之后弹出错误,请选择快速修正

1、生成build.xml文件

打开cmd并进入到C:\Users\Administrator\Desktop\Test\4\com.game.qq这个项目目录下 使用android update project -n com.game.qq -p .命令(注意-n表示项目的名称,-p参数后面有个点表示当前目录,-p后面还有一个点(.))。

注意:如果是Unity打包出来的Android工程,-n后面加入的名称一定要与Unity中PlayerSetting-BundleIdentifier中的名称一致

执行这个命令后,会在项目中自动生成build.xml和local.properties文件。

编辑build.xml文件

<!-- value 后面接的是工程的路径 --><property name="out.unaligned.dir"
        value="C:/Users/Administrator/Desktop/SDK/Share/WCA斗地主" />
    <mkdir dir="${out.unaligned.dir}" />
    <target name="modify_update_file">
        <echo>*********************** make channel ${channel}</echo>

        <replaceregexp file="AndroidManifest.xml"
            match=‘channel‘
            replace=‘${channel}‘
            byline="false"
            encoding="utf-8"
        />
        <property name="out.unaligned.file"
             location="${out.unaligned.dir}/WCA_${channel}.apk"/>

    </target>

    <target name="make_one_channels"
         depends="savemanifest,modify_update_file,release,replacemanifest,deletebin" description="description">
    </target>

    <target name="replacemanifest">
        <echo>*********************** replacemanifest</echo>
        <delete file="${basedir}\AndroidManifest.xml"/>
        <copy file="..\temp\build\META-INF\AndroidManifest.xml"
            todir="${basedir}" encoding="utf-8"/>
    </target>

    <target name="savemanifest">
        <echo>*********************** savemanifest</echo>
        <copy file="${basedir}\AndroidManifest.xml"
            todir="..\temp\build\META-INF" encoding="utf-8" />
    </target>

    <target name="deletebin">
        <delete dir="${basedir}\bin" />
    </target>
        <!-- classpath 接的是ant的路径 -->
    <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="D:/AndroidSDK/tools/lib/ant-contrib-1.0b3.jar" />
    <target name="make_channels">
        <foreach target="make_one_channels" list="${market_channels}"
             delimiter="," param="channel">
        </foreach>
    </target>

还需要手动创建ant.properties

内容如下:

key.store=C:/Users/Administrator/Desktop/Test/4/com.game.qq/com.game.qq.keystore
key.alias=beijing
key.store.password=123456
key.alias.password=123456
market_channels=wca,QQ,360,91

2、如果项目中引入了第三方工程library,比如我的项目,引入三个第三方工程:

如果执行打包命令,那么会报错,这是因为那个library 还不支持ant自动编译,我们需要先让它也支持(注意:第三方工程要设置为Lib:

project->properties->Android->Library->Is Library 这个勾选上)。

进入到library项目所在的目录,输入命令 android update lib-project -p ./  (注意是 lib-project);

打包的过程:

(1)第36行make_channels的target是ant的入口,该target中使用foreach循环调用名为make_one_channels的target(第17行)并把market_channels集合中的每个值替换给channel

(2)make_one_channels的target指定了每次打包的过程:

savemanifest:打包前先将原始的AndroidManifest.xml复制到与项目同一层级目录下的temp下build下META-INF中

modify_update_file:匹配到AndroidManifest.xml中的channel并将其替换

release:自动编译加签名

replacemanifest:删除AndroidManifest.xml,将temp/build/META-INF中的原始AndroidManifest.xml复制回项目根目录下

deletebin:删除bin文件(:这步很重要,否则只能打出一个渠道的APK,当时做这块的时候碰到的问题)

打包方法的使用

打开cmd终端,执行cd C:\Users\Administrator\Desktop\Test\4\com.game.qq

注意在运行之前要注意先clean一下项目,不然可能会报错误,切记!!!!

需要在cmd终端,项目目录路径下执行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

然后执行

ant make_channels

时间: 2024-11-07 11:35:29

整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK的相关文章

Android中利用ant进行多渠道循环批量打包

公司负责Android开发的小伙伴学习能力稍微偏弱,交代给他的自动化打包的任务,弄了好久依然没有成效.无奈只好亲自出手. 没有想到过程很顺利,我完全按照如下文章的步骤进行: 主要参考: Android中利用ant进行多渠道循环批量打包(一) Android中利用ant进行多渠道循环批量打包(二) 次要参考:?? Mac中用Ant实现Android的批量打包碰到的一些问题以及解决方法 Android Ant 批量多渠道打包实例.md [Android分享]?最新的Android Sdk 使用Ant

ant使用总结(三):批量打包apk

准备 1.准备ant环境,和update工程,参考文章>>ant使用总结(一):使用ant自动打包apk 2.ant中实现迭代,需要添加ant-contrib-1.0b3.jar到classpath,参考文章>>ant使用总结(二):相关命令说明 工程说明 Demo工程地址:https://coding.net/u/linchaolong/p/AntTest/git 打开命令行,cd到工程根目录下,执行ant run命令就会开始自动批量打包,所有渠道包将会输出到AntTestOut

ant工具-多渠道自动打包android项目

(一)ant介绍 ant是自动化拷贝.编译.发布的构建工具,简单跨平台. (二)ant使用前奏 1.安装jdk并配合环境变量 2.安装sdk并配合环境变量 3.新版的android sdk已经自带了ant在/eclipse/plugins目录下,如需下载到http://ant.apache.org,新建环境变量ANT_HOME为ant目录,path为%ANT_HOME%/lib (三)编译发布android项目 1.生成build.xml文件 运行android update project -

最新的Android Sdk 使用Ant多渠道批量打包

实例工程.所需的文件都在最后的附件中.    今天花费了几个小时,参考网上的资料,期间遇到了好几个问题, 终于实现了使用Ant批量多渠道打包,现在,梳理一下思路,总结使用Ant批量多渠道打包的方法:1.  下载安装Ant,不是使用Androis sdk 或者 Eclipse中的Ant,而是去官网下载完整的Ant.官网:http://ant.apache.org/ 1) 解压Ant,比如解压到D:\Android\Ant2) 我的电脑->属性->高级->环境变量 3) 系统变量新建ANT_

unity导出的Android工程导入eclipse时报错

今天在做unity导出Android工程后,导入eclipse不成功,报错: 解决方案:把工程目录文件剪切到别的文件夹下,再次导入eclipse后,就成功了: 比如我把unity的项目导出到E:\Eclipse_Workspace下,工程文件夹名字是MyUnity2.然后我把MyUnity2文件夹剪切到E:\Workspace文件夹下,工程导入eclipse后成功了

ant使用总结(一):使用ant自动打包apk

配置ant环境 (1)下载ant 下载地址一:http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 下载地址二:http://pan.baidu.com/s/1gdnc98n (2)解压ant,并把bin目录路径配置到系统path变量中 在命令行窗口中能执行ant命令表示配置成功 更新工程配置 (1)打开命令行窗口,执行如下命令: SDK根目录\tools\android update project --na

unity导出android studio工程方法

生成AndroidStudio工程:    (0)建立一个新工程:导入Unity生成的工程建立另一个export工程.    (1)把export工程libs下的unity-classes.jar文件拷贝到新工程的libs文件夹.然后,右键点击选择Add as Library.    (2)把export工程main文件夹下的assets.java.jniLibs三个文件夹拷贝到新工程的main文件夹    (3)把新工程main文件夹下AndroidManifest打开,<activity a

利用ant脚本 自动构建svn增量/全量 系统程序升级包

一.基本流程 值得一提的是jar包这个部分,这个步骤是为下面编译增量包做准备的.因为增量包导出的增量文件,它依赖于整个项目的其他代码,如果没有这些代码的支持是 编译不通过.然而又不能直接通过diff得到增量的class,所以只能导出增量文件后,通过引用全部工程的代码的class再进行编译即可. 二.运行环境 1.安装jdk,不会自己上网查其他的 2.如果你还没有安装ant,那么你可以参考:http://www.cnblogs.com/hoojo/archive/2013/06/14/java_a

GJM : Unity3D HIAR -【 快速入门 】 六、导出 iOS 工程

导出 iOS 工程 在开始之前,请务必先保存您的工程.由于 Unity 无法直接生成 ipa 文件,您需要先导出 iOS 工程文件,然后通过 Xcode 编译生成. Step 1. 选择平台 在 Unity 中,点击 File > Build Settings-,在弹出的 Build Settings 对话框中选择 iOS 平台,并点击 Switch Platform,点击 Add Current 将当前工程添加到 Scene In Build 窗口中(请确认已勾选). Step 2. iOS