IOS内网自动化打包

需求

在无需监管的情况下,方便测试同学,通过内网下载安装测试包。

itms-services协议的解释

介绍下通过itms-services协议,发布或者分享IOS应用程序的过程。

app的安装并非是直接安装ipa文件,他首先访问的是plist文件(xml格式的清单描述文件)这里面包含了哪些东西?


IOS内网自动化打包_第1张图片
IOS内网自动化打包_第2张图片

方案描述

1、     对于IOS包来说,要实现自动打包需要一台安装最新xcode环境的mac主机,现在我们已经有了一台mac mini主机,并且供应设备打包的环境已经配置好。

2、     通过jenkins连到mini主机,通过提前预备的脚本打出ipa包。

3、     内部测试环境,把得到的ipa包,通过nginx部署到内网服务器,得到ipa在服务器上的url。

4、     得到ipa文件url写进提前预备的plist文件中,并且把plist文件上传到七牛云,得到plist文件在七牛云的url路径。(为什么必须上传到七牛云?答案:第一点,本地服务不能提供https协议的可信赖证书,注意的是自荐证书也无法使用,进而ipa导致不能下载的问题。第二点,七牛云必须是标准用户)

5、     得到的plist文件路径写入html文件。Html文件通过nginx部署到内网服务器,供测试同学下载。

部署流程图:


IOS内网自动化打包_第3张图片

下载内外网切换逻辑


IOS内网自动化打包_第4张图片

html缓存处理细节

当plist更新后,应用名、id等属性与ipa文件的属性对应不上,就会出现安装失败的问题,更新对应的plist文件内容,就能彻底解决问题吗?

答案:不会。这时的安装失败是由于safari缓存引起的,而且,这种缓存无法通过清理safari本身缓存和重启手机设备解决。

怎么做能一劳永逸解决缓存问题?

Plist路径后面添加随机数,以确保每次缓存的的plist路径不一样。show code!

IOS内网自动化打包_第5张图片

你可能感兴趣的:(IOS内网自动化打包)