您的位置:首页 > 移动开发 > Android开发

ant单个或多个渠道包打包参考文档

2015-08-26 11:42 369 查看
操作方法:

1、   单个渠道包

1、下载ant,并配置环境变量

并且配置AndroidSDKTools环境变量

2、测试ant以及android命令是否安装成功,下图表明已安装成功

3、build.xml和 local.properties目录自动生成

执行cmd定位到项目根目录下,运行android update project -p <project> -t <target>

<project>为项目全路径,<target>为API版本。

build.xml文件中<project name="Babyshow"default="help"> 修改name名称为你要编译的apk包名称;

4、 新建ant.properties在项目工程根目录下,内容如下:(密码自己变更)

key.store=suning.keystore
key.store.password=SuningXXXX
key.alias=suning
key.alias.password=SuningXXXX

5、 将key文件放置在当前项目根目录下

6、 进行打包CMD运行 ant cleanrelease

 

打包成功后即可在bin目录下看见Babyshow-release.apk。

2、   多个渠道包

1、步骤1-5参考单个渠道包

2、修改ant.properties配置文件

增加两行,分别为渠道包名称以及版本号

key.store=suning.keystore
key.store.password=Suning1234
key.alias=suning
key.alias.password=Suning1234
market_channels=91,360,wandoujia,baidu

version=2.0

3、修改build.xml配置文件

在第三行增加(<project
name="Babyshow"default="help">行下)

<!-- 渠道包打包脚本  ant deploy-->   

<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"> 

   <replaceregexp
flags="g"
byline="false"> 

        <!-- 匹配的内容是android:value="*****" android:name="UMENG_CHANNEL" --> 

        <regexp
pattern='android:value="(.*)"android:name="BaiduMobAd_CHANNEL"'
/> 
        <!-- 匹配之后将其替换为 android:value="渠道名" android:name="UMENG_CHANNEL" --> 

        <substitution
expression='android:value="${channel}"android:name="BaiduMobAd_CHANNEL"'
/>
        <!-- 正则表达式需要匹配的文件为AndroidManifest.xml--> 

         <fileset
dir=""includes="AndroidManifest.xml"
/> 
   </replaceregexp> 

   <property
name="out.release.file"
location="${out.absolute.dir}/${ant.project.name}_${channel}.apk"/> 

    <!--包 --> 

    <antcall
target="release"
/> 
    <!--输出渠道包到bin/out目录下 --> 

   <copy
tofile="${out.absolute.dir}/out/${ant.project.name}v${version}-${channel}.apk"file="bin/${ant.project.name}-release.apk"/> 

</target>

4、实现批量循环打包需要一个类似于for循环的功能,在Ant的核心包里没有相关的For循环的Task,即不支持for循环,但是ant支持第三方扩展包,以支持更多的其他功能。

于是我们要下载相应的支持for循环的扩展包。可以使用开源的Ant-contrib包。下载地址:http://ant-contrib.sourceforge.net/  。
下载后的解压得到的jar文件放到ant的lib目录。
5、执行antdeploy 命令即可循环打包。最好提前执行下ant clean

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息