• 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 软件)

  • 相关阅读:
    DAY9学习笔记
    DAY8课下作业
    DAY8学习笔记
    DAY7课下作业
    github clone 开源代码报Permission denied (publickey)
    grandle构建工程报:javax.net.ssl.SSLException
    centos安装redash
    centos安装nodejs
    CURL执行请求
    flume定制拦截器Interceptor
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/12848903.html
Copyright © 2020-2023  润新知