由于Android的市场太多, 每次发布Android的APP都需要在不同市场发布, 而为了统计从不同渠道带来的流量, 需要在配置中增加渠道代号, 由于渠道众多,每次发布程序都要去手工修改渠道代号肯定不现实. 这种机械化的工作最好是让计算机来完成.
怎么配置Ant在这里就不介绍了,在工程目录下执行 android update project, 会自动生成Ant 使用的build.xml 这个命令还可以指定SDK版本什么的. 一般不指定,可以生成后修改, 除了生成build.xml, 还会生成使用的配置文件project.properties和local.properties. 可以直接修改其中的相关配置.
1.自动签名
这个比较简单,在工程的根目录创建ant.properties,设置好下面和签名证书文件相关的几个参数.
key文件的密码:
key.store.password= 1234
文件别名的密码:
key.alias.password= 1234
key文件名
key.store=mykey.sample
key文件中的别名
key.alias= sample
2.自动生成不同的渠道颁布,以友盟的渠道设置来说明如何自动生成, 友盟的渠道设置时在AndroidManifest.xml中配置meta data的方式.
<meta-data android:name="UMENG_CHANNEL" android:value="normal"/>
所以要自动修改其中的配置渠道代号. 在build.xml里面增加
<target name="setup-channel">
<property name="matchChannel.start" value='UMENG_CHANNEL\" android:value=\"' />
<property name="matchChannel.end" value='\"' />
<replaceregexp file="AndroidManifest.xml" match='${matchChannel.start}[^"]*${matchChannel.end}' replace="${matchChannel.start}${meta.channel}${matchChannel.end}" />
</target>
<target name="build-channel" >
<echo>channel: building ${meta.channel}</echo>
<antcall target="setup-channel" />
<antcall target="release" />
<move file="bin/${ant.project.name}-release.apk" tofile="bin/${ant.project.name}-${meta.channel}.apk"/>
</target>
<target name="channel_91" >
<antcall target="build-channel">
<param name="meta.channel" value="91"/>
</antcall>
</target>
<target name="channel_hiapk" >
<antcall target="build-channel">
<param name="meta.channel" value="apk"/>
</antcall>
</target>
<target name="all" depends="channel_91,channel_hiapk">
</target>
只要执行ant all 就可以自动签名,并生成各个渠道的不同版本了. 参照这个也可以做自动更新版本号的功能.