转赞请注明出处:http://www.cnblogs.com/zhanggui/p/7039651.html

一、前言

在iOS开发过程中,难免会遇到各种Bug。因此你会去解决所有的Bug,然后提交到AppStore。但是,有的人也许会遇到这种情况:上架发布之后下载最新的包,发现访问的环境错误。仔细查看,原来是上传的包里面的环境打错了(正式环境、日常环境、预发环境,打的不是正式环境)。这种问题很尴尬,因为测试工程师在测试的时候使用的包的确没问题,所以这不是测试的锅,只能是开发人员的锅。经过我的测试,打好的用于上传到AppStore的release包是无法安装到测试机器上的。所以在你上传到AppStore之后提审直到发布,你才能直到你发布的包是否正确。

那么这个锅怎么甩呢?那就是使用TestFlight!

二、开始

在你的程序没有发布(release)到AppStore的时候,你可以使用TestFlight去邀请用户测试你的app,进而收集有用的反馈信息。

你可以仅仅通过测试者的email来邀请多达2000测试人员进行测试你还未发布的程序。

既然这么实用,那就来看看如何使用。

首先,你需要用手机安装TestFlight这个app。

首先安装并打开该App,你会发现界面如下:

下面的Apple ID就是当前安装该App的设备所登录的Apple ID。接下来,我们就可以进行测试了。这样你就对手机配置好了TestFlight(其实就是安装了个工具软件)。

接着,登录itunesconnect,创建或者查看已经存在的app页面:

你会发现有个TestFlight的选项,点击进入:

关闭弹窗之后你会发现界面如下:

这里的构建版本就是你正常上架AppStore的时候打包上传的包。点击所有测试员可以查看能够用TestFlight进行测试的人员。测试人员的添加在用户和职能中添加:

点击用户和职能中的TestFlight Beta版测试人员:

这里又分为内部和外部测试员,内部测试员从iTunes Connect用户里面添加,也就是内部开发人员。外部测试人员是可以不在iTunes Connect用户里面添加的。点击外部测试人员:

你可以按照上面的内容填写,然后添加测试人员。你也可以直接在testFlight处新建群组,然后添加外部测试人员。

然后在TestFlight处添加构建版本:

构建完版本之后,你所邀请的测试人员就会收到一封邮件:

点击View in TestFlight之后,你会发现里面有个大写的一串字母,此时打开你手机上的TestFilght,点击Redeem,然后输入看到的那一串大写字母,输入点击return即可安装测试版的app。

到这里你就可以进行测试了。

这里需要注意以下几点:

1、如果你遇到说缺少出口合规证明的问题,你可以在打包之前在Info.plist添加ITSAppUsesNonExemptEncryption并设置为NO:

这样再次打包,然后即可测试。

还有一种方法会让你避免出口合规证明的问题,那就是你还是按照正常的逻辑提交app,然后直接提交审核,这个时候再添加测试用户的时候便不会遇到这种问题了。个人比较推荐后者,因为你如果觉得你的app没有bug,你就可以打包提交审核,不过这时要设置手动发布。这样当你提交审核之后(app状态变成正在等待审核状态),测试人员便可以直接去通过TestFlight安装测试版,如果测试通过,我们就不用再次提交审核了。如果测试不通过,你可以取消该版本的审核,然后修改测试发现的Bug,修改之后再次提交。

三、总结

这里只是简单的介绍了一下TestFlight的使用,具体的内容还要自己去尝试,例如你可以设置测试信息,告诉测试人员需要测试的东西:

整个流程还是很方便的。

如果有疑问随时留言沟通。

四、参考资源

1、iTunes Connect 开发人员帮助

2、视频简介:这里

TestFlight的使用--再也不用担心环境打错了的更多相关文章

  1. 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了

    [阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步  1.1 初识OAS  啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...

  2. 教会舍友玩 Git (再也不用担心他的学习)

    舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜之郎牌Git文章,学完以后,再也不用担心舍友的学习了(狗头)哪里不会写哪里 ~~~ 一 先来聊一聊 太多东西属于,总在用,但是一直都没整理的 ...

  3. 保姆级神器 Maven,再也不用担心项目构建搞崩了

    今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...

  4. 妈妈再也不用担心别人问我是否真正用过redis了

    1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...

  5. 锋利的js之妈妈再也不用担心我找错钱了

    用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  6. 有了 tldr,妈妈再也不用担心我记不住命令了

    引言 有一次我在培训时说「程序员要善于使用 Terminal 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI?」 是的,在一些人眼里,这个黑黑 ...

  7. 妈妈再也不用担心我使用git了

    妈妈再也不用担心我使用git了 Dec 29, 2014 git git由于其灵活,速度快,离线工作等特点而倍受青睐,下面一步步来总结下git的基本命令和常用操作. 安装msysgit 下载地址:ms ...

  8. 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了

    前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体 ...

  9. python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了

    我们上次做了 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 有些朋友觉得 利用正则表达式去提取信息 太特么麻烦了 有没有什么别的方式 更方便过滤我们想要的内容啊 emmmm 你还别说 还 ...

随机推荐

  1. μC/OS-II 创建一个任务的流程

    1. 声明任务的优先级.任务堆栈的大小及任务函数 #define LED_TASK_PRIO 6 #define LED_STK_SIZE 64 void led_task(void *pdata); ...

  2. rsync+inotify实现全网自动化数据备份-技术流ken

    rsync简介 “rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步” rsync的功能和特点 ...

  3. shell编程基础(三): 位置参数与shell脚本的输入输出

    一.位置参数和特殊变量 有很多特殊变量是被Shell自动赋值的,我们已经遇到了$?和$1,现在总结一下: 常用的位置参数和特殊变量: $0 相当于C语言main函数的argv[0] $1.$2... ...

  4. [PHP]算法-队列结构的PHP实现

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: 1.php数组完全就能实现 2.array_push 从尾部往里压入元素 3.array_shi ...

  5. npm ERR! Cannot read property 'path' of null

    npm错误: 错误信息如下: $ sudo npm install -g bean-sdk sudo: npm: command not found $ npm install -g bean-sdk ...

  6. 解决mysql服务无法启动的问题

    今天,mysql突然无法启动了. 解决办法记录一下: 1.删除data文件 我的:C:\Program Files\MySQL\MySQL Server 5.7\data 注意:这个文件可能在你一直试 ...

  7. Java中重写与重载

    重写(覆盖):发生在子类与父类之间:方法名相同方法的个数.类型相同返回值类型小于等于父类的返回值类型 重载:发生在一个类中:方法名相同方法的个数.类型不同返回值类型可以相同也可以不相同

  8. jQuery中页面返回顶部的方法总结

    当页面过长时,通常会在页面下方有一个返回顶部的button,总结一下,大概三种实现方法,下面说下各方法及优缺点. 方法一 锚点定位 ? 1 <a href="#" class ...

  9. Linux 进程调度的主要策略

    1.Linux 下进程分为5种类别,分别是停止类.截止类.实时类.公平类.空闲类, 每种类别都有一个运行队列,每次调度时,就是先按照类别优先级排序,再按照每个类别内的最高优先级任务调度运行. 文件:c ...

  10. Android udp json+数组 --->bytes发送数据

    Android  json支持五种数据类型 String / int(float)/bool / null  / object 今天说 object  : json = new JSONObject( ...