android ant批量打包

1.配置ant打包所需的環境變量(事先配置好Java,Android的環境變量)---這個不會請自行百度.or google
2.解壓ant,好比解壓到D:\ant
3.個人電腦->屬性->高級->環境變量
4.系統變量新建ANT_ HMOE,變量值爲d:\ant
5.系統變量新建或修改Path,將%ANT_HOME%\bin;添加到環境變量的path中去,(注意以上路徑均爲反斜槓 )
6.驗證ant環境配置是否正確,在控制檯輸入cmd回車,若是出現
Buildfile:build.xml dose   not exist!
Build  failed
恭喜你已經配置成功!!
 
配置完成後:
1.在你的工程下面和依賴工程下面執行命令android update project -p E:\workspace\text(這是你的項目路徑)
2.將custom_rules.xml拷貝到你的項目工程下

 

<? xml version="1.0" encoding="UTF-8" ?>
  < project  name ="android_rules"  default ="deploy" >


    <taskdef resource="net/sf/antcontrib/antcontrib.properties">  
        <classpath>  
            <pathelement location="${env.ANT_HOME}/lib/ant-contrib.jar" />  
        </classpath>  
    </taskdef> 
    
    <property name="channelname" 
            value="" /> 
    <property name="release.out.out.dir" value="20131219194545" /> 
    <property name="key" value="
        :xxx_adwx1,
        :xxx_adwx2,"/> 
    <target name="deploy">  
        <foreach target="modify_manifest" list="${key}" param="nameandchannel" delimiter=",">  
        </foreach>  
    </target>  
    
    <target name="modify_manifest">  
        <!-- 獲取渠道名字 -->  
        <propertyregex override="true" property="channelname" input="${nameandchannel}" regexp=":(.*)" select="\1" />
        <replaceregexp flags="g" byline="false" encoding="UTF-8">  
            <regexp pattern='meta-data android:name="UMENG_CHANNEL" android:value="(.*)"' />  
            <substitution expression='meta-data android:name="UMENG_CHANNEL" android:value="${channelname}"' />  
            <fileset dir="" includes="AndroidManifest.xml" />  
        </replaceregexp>  
        <antcall target="release-name" />  
    </target>  
    <!-- version-tag: 1 -->
    
    <target name="release-name"
                depends="-set-release-mode-name, -release-obfuscation-check, -package, -post-package, -release-prompt-for-password, -release-nosign, -release-sign, -post-build"
                description="Builds the application in release mode.">
    </target>
    
    
    <target name="-set-release-mode-name" depends="-set-mode-check">
        <property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" />
        <property name="out.final.file" location="${out.absolute.dir}/${channelname}.apk" />
        <property name="build.is.mode.set" value="true" />

        <!-- record the current build target -->
        <property name="build.target" value="release" />

        <property name="build.is.instrumented" value="false" />

        <!-- release mode is only valid if the manifest does not explicitly
             set debuggable to true. default is false. -->
        <xpath input="${manifest.abs.file}" expression="/manifest/application/@android:debuggable"
                output="build.is.packaging.debug" default="false"/>

        <!-- signing mode: release -->
        <property name="build.is.signing.debug" value="false" />

        <!-- Renderscript optimization level: aggressive -->
        <property name="renderscript.opt.level" value="${renderscript.release.opt.level}" />

        <if condition="${build.is.packaging.debug}">
            <then>
                <echo>*************************************************</echo>
                <echo>****  Android Manifest has debuggable=true   ****</echo>
                <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo>
                <echo>*************************************************</echo>
            </then>
            <else>
                <!-- property only set in release mode.
                     Useful for if/unless attributes in target node
                     when using Ant before 1.8 -->
                <property name="build.is.mode.release" value="true"/>
            </else>
        </if>
    </target>
</project>node

3.將local.properties拷貝到你的項目工程下,而且修改成你的sdk路徑
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.

sdk.dir=E:\\android\\sdk android

4.新建一個文件ant.properties---這裏是你本身的keystore的密碼
內容爲:
key.store=android.keystore
key.store.password=123456
key.alias=android
key.alias.password=123456
5.將android.keystore拷貝到主項目根路徑下.
5. cd到你的主工程下
6. 執行ant clean  
7.再執行 ant deploy
 

 最後須要說明一點,ant打包跟Eclipse的工程是不能同時存在的。就是說若是你的工程如今在Eclipse裏面運行就會出現問題.好的方法就是用svn吧代碼down下來放到一個特定的位置。而後對代碼進行打包操做。還有一點就是咱們這個打包腳本只是對友盟的渠道進行修改.裏面有個容易出現的問題.就是友盟的AndroidManifest.xml裏面的渠道須要寫成一行。以下--是必須寫成一行,緣由應該是腳本的問題..我這個不熟..express

 <meta-data android:name="UMENG_CHANNEL"android:value="qupai_adwx1" />app

 

ok就這麼愉快的完成了!!!-----有任何問題能夠加我QQ:2519687025或者直接留言.我郵件會收到的.less

相關文章
相關標籤/搜索