自建iOS测试服务实践

背景

没有自建iOS测试服务,iOS测试大多依赖蒲公英测试平台或者fir.im,若没有遇到什么问题,继续使用第三方平台也未尝不可。
使用第三方的测试平台,可能遇到的一些问题,下边列举一下:

  • 安全不可控:测试包的安全问题,泄漏测试包,破解风险增大
  • 网络不可控:下载慢,可能是偶尔慢,但是慢的时候是真慢,砸手机的冲动都有
  • 第三方平台限制:杂七杂八的,比如下载次数有限,另外有些还必须要填写各种资料等

楼主使用python+react全栈搭建iOS测试平台,代码暂时不开源,实现过程有问题可以一起沟通。

iOS测试包安装流程

iOS设备发起请求,固定格式为:itms-services://?action=download-manifest&url=xxx.plist
url指向manifest文件在服务端的地址,manifest文件(xx.plist)中包含了iOS安装包的图标,iOS安装包服务端地址等信息,iOS设备会自动获取manifest文件中的这些信息并自动开始下载安装。安装完成后会校验签名,签名不通过iOS设备会立即删除此app。

实现方案

自己搭建iOS测试服务,技术上没有太大难度,但是一般的服务端开发,比如java后端,他并不懂iOS测试包构建,签名校验,下载安装流程等相关知识,就导致懂的人不会写服务端,会写服务端业务的人不懂技术实现。

自建平台iOS测试包安装流程图

服务端几个必要的接口:

  • 上传ipa:接收iOS测试包,即.ipa文件
  • 上传manifest:manifest文件下载接口
  • 图标地址:ipa包的图标57x57,全尺寸图标512x512,png格式,配置在manifest文件中
  • 下载ipa:苹果安装要求,必须支持https,配置在manifest文件中
  • 下载列表:供前端页面展示
上传处理流程

1.接收并保存.ipa包
2.ipa包改名zip,解压后分析payload文件夹下的info.plist文件,获取bundleId,version等测试包信息
3.生成manifest文件,网上有示例,搜索一下,改一些参数即可。


manifest文件修改项
下载列表

可以拼接好itms-services://?action=download-manifest&url=xxx.plist地址给前端,再附加一些必要的参数,比如标题,版本,分支信息等。

需要注意的点也就这么多吧,其他都是常规的业务处理,有不懂欢迎留言。

你可能感兴趣的:(自建iOS测试服务实践)