利用Ant实现根据渠道号批量打包
- - 移动开发 - ITeye博客1.确保工程已有能正常打包的ant脚本,例如build.xml;. 2.下载ant第三方库ant-contrib,支持执行循环语句,放入ant下lib目录;. 下载地址:http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ .
环境准备
1.确保工程已有能正常打包的ant脚本,例如build.xml;
2.下载ant第三方库ant-contrib,支持执行循环语句,放入ant下lib目录;
下载地址:http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/
3.由于sdk中的build.xml可能会有condition字段,但引入第三方包后会出现不支持的情况,可以参照修改:http://ant-contrib.sourceforge.net/tasks/tasks/if.html
Ant Task 定义
<taskdef resource="net/sf/antcontrib/antcontrib.properties" > <classpath> <pathelement location="${ant.dir}/lib/ant-contrib-1.0b3.jar" /> </classpath> </taskdef> <echo>Run ant-contrib-1.0b3.jar ok</echo> <target name="edit_and_build" > <echo> Run '${channel}' apk </echo> <replaceregexp encoding="utf-8" file="AndroidManifest.xml" flags="s" match="android:name="UMENG_CHANNEL".+android:value="([^"]+)"" replace="android:name="UMENG_CHANNEL" android:value="${channel}"" /> <property name="out.final.file" location="release/v${app_version}_${channel}.apk" /> <antcall target="clean" /> <antcall target="release" /> </target> <target name="deploy" > <mkdir dir="release" /> <foreach delimiter="," list="${market_channels}" param="channel" target="edit_and_build" > </foreach> </target>
local.properties修改:
ant.dir=D:/Tools/apache-ant-1.9.5 market_channels=360助手,应用宝,豌豆荚,安智市场 app_version=2.2
执行构建命令,触发批量构建:
ant deploy
问题:
1.properties文件中文显示问题?
可以通过安装eclipse插件properties editor解决;