iOS TestFlight 发布包测试

一.背景

现阶段大部分公司在测试和回归期间都是习惯使用测试包,等测试回归没问题了,才打正式发布包发布,由于测试包和发布包在打包时间点和打包过程上存在差异,所以特别容易出现发布包和回归测试的测试包不一致的情况。使用自动化打包,如果打包脚本出现问题,更容易出现这种情况。

二.解决方案

所幸的是,苹果在iOS8之后推出了TestFlight,使我们在提交前可以安装发布包进行测试,所以我们可以把测试周期拆分

测试周期拆分:回归阶段开始前、回归阶段开始后
  回归阶段开始前:主测普通测试包
  回归阶段开始后:通过TestFlight 内外部测试主测Release包

三.TestFlight使用

  1. 首先它的出现是在iOS8的时候,在Xcode 6和iOS 8上公开发行,它被整合到了iTunes Connect,你可以通过电子邮件的形式来邀请你的Beta测试成员。
  2. TestFlight的测试方式分为两种,一种是内部测试,一种是外部测试。
    - 内部测试:最多可以邀请25个内部成员,成员需要在iTunes Connect里添加,构建版本无需审核,上传build成功后即可发送测试邀请邮件。
    - 外部测试:外部测试人员的上限是2000人,构建版本需要 Beta 版 App 审核部门的批准,一般审核时间为一天左右。审核成功后才可发送外部测试邀请邮件。
    如下图:

TestFlight-内部测试

 

  1. 使用步骤:
    (1)上传构建版本到iTunes Connect
    (2)发送 TestFlight 内部测试邀请,外部测试提交审核
    (3)安装TestFlight这个app,先到AppStore上搜索 TestFlight下载,使用你的Apple ID登录,然后在手机打开你的邮箱,找到测试邀请邮件,然后点击 Start Testing 按钮,这个时候会直接跳转到你的TestFlight上,最后点击INSTALL进行下载。如图:

 

 

TestFlight提供的管理办法是将测试者分为内部成员和外部成员。理论上说,这两种测试者都可以在测试阶段使用你的App,不过所谓的内部主要是指iTunes Connect上在你的开发团队里参与技术开发或者管理的成员。你最多可以邀请25个内部成员,而与之相对的外部成员,自然就是指那些不属于你的团队或者公司的测试者,外部测试人员的上限是2000人。这里有一点需要注意的是,在你邀请外部成员参与测试之前,需要先通过苹果的审核。而这一限制在内部成员上就没有,也就是说一旦你把你的App上传到iTunes Connect上之后内部成员就可以开始进行测试了,无需审核。

准备工作

  • 待测试的 ipa 包(用Application Loader上传)或者是 xcarchive (用Xcode Upload to App Store)文件(需要上传到 iTunes Connect );
  • 到 App Store 下载安装软件 TestFlight;

步骤

  1. 将打包好的 ipa 或 xcarchive 文件上传到 iTunes Connect;
  2. 登录到 iTunes Connect 进入我的APP,选择你的APP;
  3. 到 TestFlight 模块下,如果 App Store 有提交过的版本,内部测试员就可以了,我们只需要添加内部测试员用户即可,如图:

     
    TestFlight模块.jpeg
  4. 添加内部测试员(即添加iTunes Connect 用户),如图:



     
    添加内部测试员.jpeg

     

     

     

    添加成功.jpeg
  5. 接下来坐等收邮件,就是刚刚添加的那个用户邮箱,会收到邮件,如图:

     

     

     
    邮件.jpeg
  6. 点击 View in TestFlight 获取邀请码,如图:

     

     


     
    邀请码.jpeg
  7. 接下来打开之前下载的 TestFlight 软件,输入邀请码即可,接下来就可以安装之前构建的版本和 App Store 的历史版本。(每个版本都有90天的有效期,时间是从你的构建版本上传到 iTunes Connect 算起)

注意:每一个邀请码对应一个 Apple ID ,在 TestFlight 软件中无需收输入Apple ID(其实也没法输入),它会自动获取当前设备登录的 Apple ID ,如果此邀请码已经被激活(就是已绑定 Apple ID ),则无法在不同的 Apple ID 下使用了(如果多台设备都登录的是已绑定的 Apple ID 则不会出现此问题)。不过还有一种方法就是在不同的设备登录邀请码绑定的 Apple ID ,这样直接打开 TestFlight 都不需要输入邀请码即可下载安装测试软件。

温馨提示
如果先添加了 iTunes Connect 用户,则左侧栏的添加外部测试员栏目消失了,同时出现了一个新群组栏,点击这个其实就可以添加外部测试员,只不过给外部测试员进行了分组,起了一个组名而已,本人当时找了半天没找到,希望后面的同学注意下,免得在这里浪费时间。

 

 

 

坑爹的新群组.jpeg
添加外部测试员基本差不多,接下来我直接上图
 

 

 

添加外部测试员1.jpeg
 

 

 

添加外部测试员2.jpeg
 

 

 

添加外部测试员3.jpeg

填坑

在操作步骤3的时候可能会出现提示:“缺少出口合规证明”,如下图所示:

 

 

 

 

 

缺少出口合规证明.jpeg

解决方法:去Info.plist文件中添加 ITSAppUsesNonExemptEncryption 并设置为 NO ,修改 build 号,重新打包上传。

 

 

 

添加key.jpeg

添加了此项,在iTunes Connect 上提交审核的最后一步会有不同,少了一项:是否更改加密功能(这不会影响审核的,放心的使用吧),如图:

 

 

 

提交审核.jpeg

小结

此方法的使用视具体情况而定,不见得就是最好的或是最坏的。今天正好有几个特殊用户需要用个特殊版本,所以采用了此方法。目前我们的测试包主要是通过脚本自动编译打包后上传到云服务器,生成一个下载链接,测试的伙伴直接通过此链接下载安装即可,(想学习自动化编译打包的看这里《iOS自动化编译打包》)上图更容易理解,请看图:

 

 

 
自动化编译的包列表.jpeg

对于以上我今天出现的情况,还有很多种方法可以为特殊用户提供特殊版本的APP,比如:
1.用企业账号,打一个特殊包,上传到蒲公英供用户下载使用(需要一个企业账号)
2.获取特殊用户的设备UDID,添加为测试设备,重新用新的配置文件编译打包,把打好的包发给用户安装即可(需要用户设备UDID)
3.用今天所讲的 TestFlight 即可,至于使用内部人员测试还是外部人员测试根据具体情况而定(需要用户下载安装 TestFlight 软件)

 

posted on 2020-05-08 10:17  高彰  阅读(4539)  评论(0编辑  收藏  举报

导航