TestFlight的使用--再也不用担心环境打错了
转赞请注明出处: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的使用,具体的内容还要自己去尝试,例如你可以设置测试信息,告诉测试人员需要测试的东西:

整个流程还是很方便的。
如果有疑问随时留言沟通。
四、参考资源
2、视频简介:这里
TestFlight的使用--再也不用担心环境打错了的更多相关文章
- 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了
[阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...
- 教会舍友玩 Git (再也不用担心他的学习)
舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜之郎牌Git文章,学完以后,再也不用担心舍友的学习了(狗头)哪里不会写哪里 ~~~ 一 先来聊一聊 太多东西属于,总在用,但是一直都没整理的 ...
- 保姆级神器 Maven,再也不用担心项目构建搞崩了
今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...
- 妈妈再也不用担心别人问我是否真正用过redis了
1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...
- 锋利的js之妈妈再也不用担心我找错钱了
用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- 有了 tldr,妈妈再也不用担心我记不住命令了
引言 有一次我在培训时说「程序员要善于使用 Terminal 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI?」 是的,在一些人眼里,这个黑黑 ...
- 妈妈再也不用担心我使用git了
妈妈再也不用担心我使用git了 Dec 29, 2014 git git由于其灵活,速度快,离线工作等特点而倍受青睐,下面一步步来总结下git的基本命令和常用操作. 安装msysgit 下载地址:ms ...
- 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了
前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体 ...
- python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了
我们上次做了 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 有些朋友觉得 利用正则表达式去提取信息 太特么麻烦了 有没有什么别的方式 更方便过滤我们想要的内容啊 emmmm 你还别说 还 ...
随机推荐
- MySQL系列详解八:MySQL多线程复制演示-技术流ken
前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有 ...
- Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑
应用场景 有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的: ...
- Guid的生成和数据修整(去除空格和小写字符)
SqlServer实现 SELECT LOWER(LTRIM(RTRIM(REPLACE(NEWID(),'-','')))) NEWID()函数产生随机数,例如:F874153F-D99B-40A9 ...
- ADO.NET基础学习 一(连接数据库)
(记录下方便自己复习) 概念 简单地理解为用来连接数据库的类. 工作流程 ①Connection对象用来连接数据库. 两种连接方式:Windows身份验证 / sqlserver验证 private ...
- 《c#图解教程》
书名 <c#图解教程> 图片 时间 2017-10-12月 学习 第20章的异步编程很好,在项目里面很有用.东西有点多时间久了不用就忘了
- java时间类Date、Calendar及用法
对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...
- 如何在Promise链中共享变量?
译者按: 使用Promise写过异步代码的话,会发现在Promise链中共享变量是一个非常头疼的问题,这也是Async/Await胜过Promise的一点,我们在Async/Await替代Promis ...
- 04-HTML-图片标签
<html> <head> <title>图片标签学习</title> <meta charset="utf-8"/> ...
- 洛谷P4103 [HEOI2014]大工程(虚树 树形dp)
题意 链接 Sol 虚树. 首先建出虚树,然后直接树形dp就行了. 最大最小值直接维护子树内到该节点的最大值,然后合并两棵子树的时候更新一下答案. 任意两点的路径和可以考虑每条边两边的贡献,\(d[x ...
- 浅谈Kotlin(三):类
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 已经学习了前 ...