自建iOS测试服务实践

作者: 搬砖人666 | 来源:发表于2020-08-31 11:50 被阅读0次

    背景

    没有自建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测试服务实践

        本文链接:https://www.haomeiwen.com/subject/yjhusktx.html