任务目标:将内网APK打包后最新下载链接、更新时间、更改日志显示在一个我自己制作的APP里
任务作用:这样我们在内网测试时更新下载APK更加便捷,并且能够清楚目标APK的版本情况
实现原理:
APK下载部分
使用Jenkins打包APK后执行shell将最新打包的APK复制到Nginx配置的根目录
cp -f $APK_BUILD_HOME/passenger-smzcself-release.apk /usr/local/nginx/html
Nginx配置:
/usr/local/nginx/conf/nginx.conf 添加一个9000端口的server
这样在网页上请求"http://192.168.3.151:9000/passenger-smzcself-release.apk"就可以下载都更新后的最新APK
APK更新时间部分
echo 更新时间 > /usr/local/nginx/html/passenger.html
echo $CURRENT_TIME >> /usr/local/nginx/html/passenger.html
shell将 APK打包时间写入到passenger.html文件,网页请求http://192.168.3.151:9000/passenger.html显示打包更新时间
APK更新日志部分
Jenkins每次打包成功后都会根据git或者svn提交注释生成修改日志
这个变更日志保存在Jenkins工作文件夹jobs下builds/lastSuccessfulBuild/changelog.xml里面,这个文件的XML格式,我需要将它简单切割后内容发送到/usr/local/nginx/html/passenger_log.html,最终访问http://192.168.3.151:9000/passenger_log.html这个页面就可以显示我们的APK上一次打包更新到了什么内容
最终集成
我将这几个网页集成在同一个网页上一个网页显示下载链接另外两个网页作为整个网页的iframe显示,创建一个APP工程,这个工程非常的简单只有一个webview控件,这个控件显示了我制作了的那个网页,更新APK信息后在APP端只用下拉刷新网页就会显示最新的更新信息
最终效果