针对不同的市场使用Ant导出多个APK(Export multiple apk for differ

2019-10-17 02:27发布

我的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文件编辑目标做的蚂蚁,等

Answer 1:

首先,你为什么总是在启动一个新的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 +线蚂蚁写构建脚本。



Answer 2:

我最终的解决方案:
定义任务:

    <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,...


文章来源: Export multiple apk for different market using ant
标签: android ant cmd