首页 > 代码库 > 建立apk定时自动打包系统第二篇——自动上传文件

建立apk定时自动打包系统第二篇——自动上传文件

在《建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期》这篇文章中介绍多渠道打包的流程。很多时候我们需要将打包好的apk上传到ftp中,这时候我可以修改custom_rules.xml这个文件就可以实现这个需求了。

1、下载 common-net-3.3.jar 并将其放在ant安装目录下的lib文件夹中。

2、修改ant.properties文件

key.store=./test.keystorekey.alias=test.keystorekey.store.password=test12345key.alias.password=test12345#generate test.keystore#keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore test.keystoreapk.dir=./apkapp.name=AntDemo#channel numbersmarket_channels=myapp-12345,BAI-3s322d

#upload apk

#ftp的主机地址,我在本机配置了一个ftp服务器,用于测试

ftp.hostname=127.0.0.1

#ftp登录帐号

ftp.userid=admin

#登录密码

ftp.password=6lg4LgCT

#将apk文件存放ftp服务器中的根目录下,可以自行选择其他目录

ftp.remotedir=/

upload apk 后面就是新添加的配置属性,这些属性会在custom_rules.xml文件中引用,当然这个ftp.userid必须有读写权限,否则将无法上传。

3、修改custom_rules.xml文件

<?xml version="1.0" encoding="UTF-8"?><project name="custom_rules" >    <taskdef resource="net/sf/antcontrib/antcontrib.properties" >        <classpath>            <pathelement location="${ant.ANT_HOME}/lib/ant-contrib-1.0b3.jar" />        </classpath>    </taskdef>    <tstamp>        <format            pattern="yyyyMMddhhmm"            property="pktime"            unit="hour" />    </tstamp>    <mkdir dir="${apk.dir}" >    </mkdir>    <target name="deploy" >        <foreach            delimiter=","            list="${market_channels}"            param="channel"            target="modify_manifest" >        </foreach>    </target>    <target name="modify_manifest" >        <replaceregexp            byline="false"            flags="g" >            <regexp pattern="android:value="http://www.mamicode.com/(.*)" android:name="app_key"" />            <substitution expression="android:value="http://www.mamicode.com/${channel}" android:name="app_key"" />            <fileset                dir=""                includes="AndroidManifest.xml" />        </replaceregexp>        <property            name="out.final.file"            location="${apk.dir}/${app.name}_${channel}_${pktime}.apk" />        <antcall target="clean" />        <antcall target="release" />        <antcall target="upload" />    </target>

 

<target

        name="upload"

        description="Upload apk to server..." >

 

        <ftp

            action="put"

            binary="yes"

            passive="true"

            password="${ftp.password}"

            remotedir="${ftp.remotedir}"

            separator=""

            server="${ftp.hostname}"

            userid="${ftp.userid}"

            verbose="yes" >

            <!--指定apk所在目录-->

            <fileset dir="${apk.dir}" >

 

                <include name="${app.name}_${channel}_${pktime}.apk" />

            </fileset>

        </ftp>

 

    </target>

 

</project>

在 <antcall target="release" /> 后面添加<antcall target="upload" />这个就是在打包好了之后就执行上传任务。

修改之后就可以执行ant-deploy命令就可以自动打包并上传到ftp了。

4、Demo代码

antdemo.rar

115网盘礼包码:5lbdiif2eh98

http://115.com/lb/5lbdiif2eh98

这个代码包含了多渠道打包以及自动上传ftp的配置,这个代码的ftp是本机测试的,跑的时候需要配置一个ftp地址和有读写权限的用户名和密码

 

建立apk定时自动打包系统第二篇——自动上传文件