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

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

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

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

2、修改ant.properties文件

key.store=./test.keystore
key.alias=test.keystore
key.store.password=test12345
key.alias.password=test12345

#generate test.keystore
#keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore test.keystore
apk.dir=./apk
app.name=AntDemo
#channel numbers
market_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="(.*)" android:name="app_key"" />

            <substitution expression="android:value="${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地址和有读写权限的用户名和密码

 

目录
相关文章
|
3月前
|
Linux Android开发 iOS开发
使用Kivy创建“Hello World”应用并打包成APK
使用Kivy创建“Hello World”应用并打包成APK
|
5月前
uniapp 打包成 apk(原生APP-云打包)免费
uniapp 打包成 apk(原生APP-云打包)免费
319 1
|
5月前
|
JavaScript
vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)
vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)
141 0
|
5月前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
154 0
|
6月前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
343 0
|
7月前
|
设计模式 缓存 Java
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
|
7月前
|
JavaScript 前端开发 Android开发
Auto.js如何打包成APK文件
Auto.js如何打包成APK文件
|
7月前
|
Android开发
|
7月前
|
Android开发 开发者
Android Split APK介绍
【2月更文挑战第5天】
|
7月前
|
XML API Android开发
android S 上 安装apk出现android.os.FileUriExposedException
android S 上 安装apk出现android.os.FileUriExposedException
88 6