建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统
2014-11-14 11:23
197 查看
转自:http://angrycode.net/article/518.html
angrycode2014-10-29 15:31Blog87次浏览无评论我们的思路是每天下班后团队各成员在指定的时间(例如下午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 J***A_HOME=/data/dev/jdk export ANT_HOME=/data/dev/ant export PATH=$J***A_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 执行打包命令了。
相关文章推荐
- 建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统
- 建立apk定时自动打包系统第二篇——自动上传文件
- 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期
- Android-几行代码通知系统自动安装apk
- Android App更新版本以及提示用户下载最新apk(有图,有代码,有最终效果图)详细解释及思路
- Linux系统下tomcat自动拉取代码打包发布的配置部署和脚本编写(转朋友)
- Android应用APP自动更新功能的代码实现
- jenkins自动部署--定时轮询svn代码更新并自动发布至测试环境
- Android 代码自动升级新版本更新apk时出现“已安装了存在签名冲突的同名数据包”
- php调用系统shell命令自动更新线上网站代码为git版本库最新版
- Android Studio使用Gradle实现自动打包,签名,自定义apk文件名,多渠道打包,集成系统签名证书【附效果图附源码】
- 【Android】打包过程:生成自动代码->编译->(混淆)->dex文件->生成资源文件->打apk包->(签名)->对齐
- android自动更新代码实现------------安卓开发第一步:让APP学会自动更新
- 利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码
- Andoid应用更新,解决andrid5.0获取系统权限把下载APK存到SD卡中,版本号的比较,有手动更新和自动更新
- 一个无刷新效果定时自动更新页面的例子(ASP.NET2.0-应用xmlhttp)
- 病毒***禁用系统自动更新关闭系统防火墙
- 十二行代码搞定自动更新
- ABAP--如何实现交货单的任何一item库位发生人工修改时系统自动更新所有items(感谢天元提供)
- 利用Lambda表达式: 重构代码时自动更新反射成员。