zoukankan      html  css  js  c++  java
  • 建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统

    我们的思路是每天下班后团队各成员在指定的时间(例如下午18:30)之前把各自的代码上传到SVN,然后服务器在指定的时间(例如下午18:30)更新代码、执行ant 打包命令、最后将apk包存放在指定目录(或者上传指定ftp目录)、其他部门或者同事可以访问指定的地址来下载最新的APK包。就是在ubuntu系统中创建一个定时任务,这个任务每天会在指定时间执行事先编写好的编译脚本。这个定时任务在ubuntu中可以使用crontab来实现。(还不了解crontab的同学自行脑补啦)

    一、环境准备

    1、在ubuntu 12.04搭建编译环境。

    关于Linux下ant编译Android的步骤可以参考 《建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期》和《建立apk定时自动打包系统第二篇——自动上传文件》 这个帖子。这个帖子虽然是在windows上操作的,但是步骤都是相似的。相信作为聪明的程序猿这点是可以举一反三的。

    2、搭建好apk的编译环境之后我们要安装SVN客户端。unbuntu安装SVN非常简单。执行下列命令

    sudo apt-get install subversion

    等待完成之后,执行下面命令

    svn --version

    如果出现了svn版本以及相关帮助等信息说明svn已经安装好了。

    二、安装apache服务

    由于我的ubuntu服务器已经绑定了公司内网的IP(192.168.0.115),只要我将apk包存放在指定目录下(如apk),那么其他同事就是可以在浏览器中使用192.168.0.115/apk下查看或下载已经打好包的apk了。

    1、安装apache服务。

    ubuntu中安装apache服务也是很简单的。

    sudo apt-get install apache2

    ​安装好之后,自动打开了apache服务,其对外访问的目录默认是在/var/www/目录下,所以在浏览器中输入localhost,并出现It work!字样,说明apache服务安装成功

    1、修改ant.properties

    在这个文件中我们指定一个apk保存目录为apache服务下的一个目录

    key.store=./test.keystore
    key.alias=test.keystore
    key.store.password=test
    key.alias.password=test
    
    apk.dir=/var/www/apk
    app.name=AntDemo
    #channel numbers
    market_channels=default_channel

    这样,ant打好包之后只要是公司内网的同事就可以访问192.168.0.115/apk来下载最新的apk包了。

    二、编写apk编译执行脚本

    《建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期》帖子中,我们是使用

    ant deploy

    进行打包的。因此我们的脚本的思路也是很简单的,先使用svn update 项目代码,然后使用ant deploy 命令。

    1、在项目根目录(例如我的项目目录是/data/appworks/AntDemo)下面新建一个build-app.sh文件。文件的内容如下:

    #!/bin/sh
    export JAVA_HOME=/data/dev/jdk
    export ANT_HOME=/data/dev/ant
    export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
    
    cd /data/appworks/AntDemo/
    
    #update 
    echo "updating code from server."
    svn update --username 你的svn用户名 --password svn密码,无可省略
    
    echo "update finish.begin building the project."
    #deploy
    ant deploy
    echo "building app is finishing."

    上面蓝色部分一定要设置,否则crontab不会执行这个脚本。这个问题困扰了楼主好久。切记切记!

    编写好shell脚本之后,给build-app.sh添加执行权限

    chmod +x build-app.sh

    然后在项目目录下手动执行下这个脚本看看有没有错,如果可以打包成功,那么说明这个脚本是正确的了。

    2、创建crontab任务。

    使用下面命令编辑一个crontab任务

    crontab -e

    这个时候在shell中就打开了crontab的编辑状态下的页面,在这个页面的后面插入下面的指令

    30 18 * * * /data/appworks/AntDemo/build-app.sh

    然后编辑,保存

    这时候crontab就会在每天的18:30执行/data/appworks/AntDemo/build-app.sh 执行打包命令了。

  • 相关阅读:
    jQuery UI vs EasyUI
    javascript数组元素的添加、删除与插入以及参数数组的使用
    ExtJS中get、getDom、getCmp、getBody、getDoc使用
    ASP.net 中 OutputCache 指令各个参数的作用
    母版页如何页面部分缓存
    Cache OutputCache ASP.NET缓存
    如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面
    页面级缓存@ OutputCache
    存储过程DataGrid分页及注意点
    vs2005中 Global.asax 没有 Global.asax.cs 问题解决
  • 原文地址:https://www.cnblogs.com/angrycode/p/4059687.html
Copyright © 2011-2022 走看看