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
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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories