我的Android应用程序针对的是20+的市场,每一个在manifest.xml几个不同的属性。
要释放20+陆续APK一个真的是费时,我试图使用Windows批处理文件来完成释放工作中的一个单一的点击。
现在,我使用的教程提供的解决方案在这里 ,以改变在manifest.xml外地,但我不知道蚂蚁很好,所以我用一个非常破解的方法做类似下面批处理文件的作业:
start cmd.exe /c "ant config-google-play release_mine"
REM the line below is for waiting for the former task to finish
ping 1.1.1.1 -n 1 -w 90000 > nul
start cmd.exe /c "ant config-eoemarket release_mine"
ping 1.1.1.1 -n 1 -w 90000 > nul
....
有没有办法做到这一点一些优雅的方式? 像刚刚在build.xml文件编辑目标做的蚂蚁,等
首先,你为什么总是在启动一个新的CMD进程? 如果你只是叫蚂蚁20X +倍构建脚本将开始建造未来建设之后当前的就完了。
第二,我会建议你有20X +不同的AndroidManifest.xml文件(必须为每个文件前缀或后缀,使他们没有被命名正是“AndroidManifest.xml中”),然后你只是每个版本之前它们重命名为AndroidManifest.xml中。 你可以做到这一点与custom_rules.xml Ant构建文件(把它旁边的build.xml文件)是这样的:
<project name="custom_rules">
<target name="config-google-play">
<property name="version" value="google_play" />
</target>
<target name="-pre-build">
<copy tofile="${basedir}/AndroidManifest.xml" overwrite="true">
<fileset file="${basedir}/AndroidManifest.xml.${version}" />
</copy>
</target>
</project>
在这里,我假设你改名的表现为AndroidManifest.xml.xxxxx。 还要注意的apk的实际建造开始之前被调用了“ - 预构建”的目标。
然后,只需添加其他“config-”的目标,并设置它为任何你改名的AndroidManifest.xml(县)值。 然后用“蚁配置-XXXXX发布”其中xxxxx是您构建的适当配置20X +线蚂蚁写构建脚本。
我最终的解决方案:
定义任务:
<target name="modify_manifest">
<property
name="version.market"
value="${channel}"/>
<property
name="out.final.file"
location="${out.absolute.dir}/${ant.project.name}_${channel}_${project.version.name}.apk"/>
<antcalltarget="release"/>
</target>
然后,包括蚂蚁的contrib的* .jar的答案在这里,这样我可以在蚂蚁使用循环。 然后在下面定义一个新任务
<target name="deploy" >
<foreach
delimiter=","
list="${market_channels}"
param="channel"
target="modify_manifest" >
</foreach>
</target>
用“蚂蚁部署”做任务。
market_channels应ant.property如下定义:
market_channels=google-play,other,...