时期一
2016年01月,每日都需要发布一个版本,无论进展如何,功能是否完成。
处理思路:
- 服务器(Windows)中跑Tomcat服务,提供ipa及apk包的下载服务
- 每次打完包后上传到SVN,而且ipa打包是靠Xcode内Archive功能
- 制作一个下载页html,包含所有下载包的下载链接
- 每次需要登录服务器Update更新内容
处理流程:
- 打包ipa或apk包
- 修改下载页html内容
- commit到svn中
- 远程登录服务器(Windows)
- 在对应的Tomcat服务中update svn的内容
- 完成
处理耗时:
一般情况在15min左右,网络问题出现的情况可能需要30min甚至更长。
时期二
2016年05月初,此时已经不需要每日发布一个版本了,不过仍然会比较频繁,有可能两日一个、三日一个、甚至一日两个、三个版本。
处理思路:
- 由于通过Xcode打包实在太慢,转换到通过脚本来打包。通过脚本打包能绕过Xcode打包过程的联网验证行为,这个联网验证会经常出现连接失败的错误;不过脚本打包存在一个小问题,就是打包出来的ipa会比通过Xcode打包出来的大一点点,通过分析包内容也没有得到具体的原因所在。
- 由于之前的那台服务器(Windows)已经不再跑Tomcat服务了,所以需要把整个软件包下载服务器迁移到一个Linux(CenOS6.7)上。
- 考虑到Linux下svn操作不熟悉,就把原本svn上的下载内容迁移到了Git上。
- 考虑到ipa和apk包都是静态文件,那就使用nginx做服务容器吧。
- 直接开放nginx中对应文件目录访问权限,舍弃下载页html的维护。
处理流程:
- 通过脚本打包ipa
- push ipa到Git对应的repo上
- 通过ssh登录服务器(Linux)
- 在对应位置pull更新内容
- 完成
处理耗时:
一般少于5min
时期三
2016年05月某日,一日天发布了三个包,发现每次都ssh登录服务器进行更新实在麻烦,由于服务器的登录密码都是随机的,所以每次都需要复制黏贴密码
处理思路:
- 在服务器(Linux)中配置一个定时任务,每两个小时自动执行pull更新内容操作
处理耗时:
由于只需要通过脚本打包并push上Git了,所以耗时能大大缩短,大概2、3min就能完成一次发布包的提交,接着就是等待服务器自动更新了。
总结
打包脚本:提供ipa打包服务
Git:提供ipa包存储同步服务
nginx:提供Web访问ipa包服务
(•̀ᴗ•́)و ̑̑