[iOS]ipa打包分发测试的演进之路

时期一

2016年01月,每日都需要发布一个版本,无论进展如何,功能是否完成。

处理思路:

  1. 服务器(Windows)中跑Tomcat服务,提供ipa及apk包的下载服务
  2. 每次打完包后上传到SVN,而且ipa打包是靠Xcode内Archive功能
  3. 制作一个下载页html,包含所有下载包的下载链接
  4. 每次需要登录服务器Update更新内容

处理流程:

  1. 打包ipa或apk包
  2. 修改下载页html内容
  3. commit到svn中
  4. 远程登录服务器(Windows)
  5. 在对应的Tomcat服务中update svn的内容
  6. 完成

处理耗时:

一般情况在15min左右,网络问题出现的情况可能需要30min甚至更长。

时期二

2016年05月初,此时已经不需要每日发布一个版本了,不过仍然会比较频繁,有可能两日一个、三日一个、甚至一日两个、三个版本。

处理思路:

  1. 由于通过Xcode打包实在太慢,转换到通过脚本来打包。通过脚本打包能绕过Xcode打包过程的联网验证行为,这个联网验证会经常出现连接失败的错误;不过脚本打包存在一个小问题,就是打包出来的ipa会比通过Xcode打包出来的大一点点,通过分析包内容也没有得到具体的原因所在。
  2. 由于之前的那台服务器(Windows)已经不再跑Tomcat服务了,所以需要把整个软件包下载服务器迁移到一个Linux(CenOS6.7)上。
  3. 考虑到Linux下svn操作不熟悉,就把原本svn上的下载内容迁移到了Git上。
  4. 考虑到ipa和apk包都是静态文件,那就使用nginx做服务容器吧。
  5. 直接开放nginx中对应文件目录访问权限,舍弃下载页html的维护。

处理流程:

  1. 通过脚本打包ipa
  2. push ipa到Git对应的repo上
  3. 通过ssh登录服务器(Linux)
  4. 在对应位置pull更新内容
  5. 完成

处理耗时:

一般少于5min

时期三

2016年05月某日,一日天发布了三个包,发现每次都ssh登录服务器进行更新实在麻烦,由于服务器的登录密码都是随机的,所以每次都需要复制黏贴密码

处理思路:

  1. 在服务器(Linux)中配置一个定时任务,每两个小时自动执行pull更新内容操作

处理耗时:

由于只需要通过脚本打包并push上Git了,所以耗时能大大缩短,大概2、3min就能完成一次发布包的提交,接着就是等待服务器自动更新了。

总结

打包脚本:提供ipa打包服务
Git:提供ipa包存储同步服务
nginx:提供Web访问ipa包服务

(•̀ᴗ•́)و ̑̑

Share