zoukankan      html  css  js  c++  java
  • Ant 批量打包Android Umeng多渠道版本

    先决条件:
    1. apache ant
    2. antcontrib
    具体步骤:
    1. 在 AndroidManifest.xml 中添加meta-data 标签:
      <meta-data android:name="UMENG_CHANNEL" android:value="10086" >
      </meta-data>
    2. 生成ant build.xml

      android update project -p [project_path]

    3. 在ant.properties文件中添加如下配置

      application.package=com.sage.jiecai 
      ant.project.name=jiecai
      java.encoding=utf-8
      proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
      key.store=sign/android.keystore
      key.store.password=storepassword
      key.alias=jiecai
      key.alias.password=aliaspassword
      version=1.0
      market_channels=51jiecai,360,qq,hiapk,baidu,91,wandoujia,xiaomi,10086


    4. 在build.xml中添加如下代码

      <property file="ant.properties"/>

      <taskdef resource="net/sf/antcontrib/antcontrib.properties">

      <classpath>

      <pathelement location="/Library/ant/lib/ant-contrib-1.0b3.jar"/>
      </classpath>
      </taskdef>

      <import file="${sdk.dir}/tools/ant/build.xml"/>
      <target name="deploy">
      <foreach target="modify_manifest" list="${market_channels}" param="channel" delimiter=",">
      </foreach>
      </target>

      <target name="modify_manifest">
      <echo message="===========================${channel}========================="/>
      <replaceregexp flags="g" byline="false">
       <!-- 匹配的内容是 android:value="*****" android:name="UMENG_CHANNEL" -->
       <regexp pattern='android:name="UMENG_CHANNEL" android:value="(.*)"'/>
       <!-- 匹配之后将其替换为 android:value="渠道名" android:name="UMENG_CHANNEL" -->
       <substitution expression='android:name="UMENG_CHANNEL" android:value="${channel}"'/>
       <!-- 正则表达式需要匹配的文件为AndroidManifest.xml -->
       <fileset dir="" includes="AndroidManifest.xml"/>
      </replaceregexp>
      <echo message="===========================${channel}========================="/>
      <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"/>

      <echo message="===========================end============================="/>
      </target>
     
    thinking and coding
  • 相关阅读:
    【网摘】sql 语句修改字段名称以及字段类型
    转:关于bugfree的一些不得不说的事
    excel打乱各行的顺序,实现无序随机排列
    易语言报错:无法定位链接器!请检查 toolslink.ini 中的配置是否正确。 静态连接失败
    关于a标签的onclick和href谁先执行的问题
    关于a标签的onclick和href谁先执行的问题
    关于a标签的onclick和href谁先执行的问题
    易语言-子程序的参数属性
    SQL 随机取出一条数据
    为梦想,每天坚持30分钟
  • 原文地址:https://www.cnblogs.com/codesir/p/4196890.html
Copyright © 2011-2022 走看看