首页 > 代码库 > 建立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定时自动打包系统第二篇——自动上传文件