写点什么

在 iOS8 上使用 TestFlight 进行 Beta 测试

2014 年 6 月 29 日

在 2014 年的苹果全球开发者大会上,苹果宣布他们把TestFlight 集成进了iOS 8 的开发套件中。这样做的目标是,让开发人员多了一种安装Beta 测试程序的方法,并使整个过程更加容易,iOS 应用在发布以前很难去测试它,这一问题被开发人员诟病已久,这次苹果总算是兑现了承诺,解决了这个问题的。

苹果二月份收购了TestFlight 的母公司Burstly ,几个月之后宣布了以上消息。本次收购最初的一些影响是,TestFlight 终止了对Android 的支持,并中止了对TestFlight iOS SDK 的支持,允许收集用户的使用行为分析数据。目前, TestFlight 已经和一些新特性集成进了 iTunes Connect。

简单地说,全新的 TestFlight Beta 测试会给我们带来:

  • 更容易募集 beta**** 测试人员在 App Store 之外安装应用时要遵循这样的基本机制,那就是需要将每台设备标识符(UDID)添加到要安装应用的开发人员账号上,然后生成一个包含所有信息的配置文件。

    在新版的 TestFlight 中,我们不再需要 UDID 了,只需要把他们的 Apple ID 用邮件发给测试人员,那么这些测试人员就可以加为 beta 程序的新的测试人员了。这些测试人员可以在任何他们自己的设备上安装这款应用。

  • 更庞大的测试人群长期以来 iOS 开发人员一直在诟病这样一个问题:每个开发人员账号可以添加的 UDID 越来越少,限制了可以参与测试的用户的数量。从现在开始,开发人员可以为他们的应用添加多达 1000 名的测试人员了。

    除此以外,开发人员还可以拥有最多 25 位内部测试人员,这些测试人员必须要有 iTunes Connect 账号,他们会得到访问这款应用最新版本的授权。

  • 符号化的崩溃报告很久以前苹果就为 iTunes Connect 上的开发人员提供了这项崩溃报告的功能。但是由于某些因素,这个功能始终都无法让开发人员完全满意。引入 TestFlight 后将要改善这种情况,开发人员将能查看他们累积的崩溃日志,但这个功能要到明年晚些时候才能使用。此外,崩溃日志显示时会自动地符号化。

使用这些新功能有几点注意事项。

第一点并且最重要的一点是,一个应用在开放给 beta 测试人员前,必须先通过一个审核流程。这对于一些开发人员来说是个问题: Ole Begemann 提到,长达几天的审核时间无益于创建“一个高效的 beta 版本发布流程”。苹果好像也意识到了这对开发人员来说是个潜在的问题,他们已经考虑了一项更宽松的政策,允许“无需苹果审核就可以给beta 测试人员发布更新版本,除非这个更新版本包含重大修改”。如果更新版本包含了重大修改,开发人员必须“通过iTunes Connect 通知苹果,申请重新审核他们的应用”。

还有一点要引起注意,那就是测试人员只能拿到应用最新的版本。 Nick Arnott 为 iMore 网站写了篇文章,他注意到在苹果的演示视频中,除了最新的版本,其他版本都标记为“未激活”状态了。目前尚不清楚 Beta 测试人员是否能拿到老版本,很多人恐怕都难以接受这个问题,因为 beta 测试人员如果遇到了致命的问题,他们可能会需要回退到老版本

最后一点是,我们必须注意现在发布的TestFlight 只支持iOS 8 了,所以开发人员如果还是想支持老版本的iOS 或Android,那么就不能用TestFlight 了。他们有两个其他的选择, HockeyApp Crashlytics

查看英文原文: Beta Testing on iOS 8 with TestFlight 问题


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 6 月 29 日 20:062538
用户头像

发布了 77 篇内容, 共 30.5 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

数字“异化”生存

脑极体

在阿里内部,做Java到金字塔顶端的人平时都如何学习源码?

小Q

Java 学习 架构 面试 程序猿

深度对比Apache CarbonData、Hudi和Open Delta三大开源数据湖方案

华为云开发者社区

hadoop 开源 数据处理

为产业AI去障:联想的边缘突破

脑极体

天呐!价值2980元Java成神面试题竟在Github开源了

996小迁

Java 学习 架构 面试

零基础IM开发入门(三):什么是IM系统的可靠性?

JackJiang

网络编程 即时通讯 IM

企业级RPC框架zRPC

Kevin Wan

go RPC microser

真香!天天996进不去阿里?看5年苦逼程序猿怎么逆袭阿里P7

小Q

Java 学习 架构 面试 程序猿

ConcurrentHashMap核心原理,彻底给整明白了

AI乔治

Java 架构 分布式 线程

Vidyo独特的互联网适应性

dwqcmo

音视频会议 集成架构 解决方案 智能硬件

DeFi流动性挖矿系统开发技术方案

薇電13242772558

区块链 defi

解惑“高深”的Kafka时间轮原理,原来也就这么回事!

华为云开发者社区

中间件 消息队列

频繁操作本地缓存导致YGC耗时过长

AI乔治

Java 架构 JVM GC

极客大学 - 架构师训练营 第六周

9527

直播带货大战在即:账号交易灰产猖獗

石头IT视角

第6周作业

饭桶

架构师训练营第二周课后作业

天涯若海

极客大学架构师训练营

Netty源码解析 -- 零拷贝机制与ByteBuf

binecy

Netty 源码剖析

技术实践丨PostgreSQL开启Huge Page场景分析

华为云开发者社区

数据库 管理 内存

web worker的介绍和使用

程序那些事

多线程 Web Worker 异步模型 异步编程 web技术

狼人杀背后的秘密,实时语音你不知道的那些事

anyRTC开发者

音视频 WebRTC 语音 RTC 安卓

gRPC服务注册发现及负载均衡的实现方案与源码解析

网管

go 负载均衡 gRPC etcd 服务注册与发现

如何获取变量token的值

测试人生路

软件测试 接口测试

JAVA稳定底层,快速开发首选,XJR智能化客户关系管理

Marilyn

敏捷开发 快速开发 软件架构 客户关系管理

数字货币交易所系统开发解决方案,撮合交易平台搭建

WX13823153201

数字货币交易所系统开发

小白学算法:买卖股票的最佳时机!

王磊

Java 算法

极客大学 - 架构师训练营 第六周作业

9527

码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

小傅哥

小傅哥 虚拟机 synchronized mark-word Klass Pointer

第6周学习总结

饭桶

阿里内部首发1000页涨薪面试宝典:Spring+SpringMVC+MyBatis框架整合开发实战

Java架构追梦

Java 源码 架构 面试 SSM框架

当 TiDB 与 Flink 相结合:高效、易用的实时数仓

Apache Flink

flink #TiDB

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

在iOS8上使用TestFlight进行Beta测试-InfoQ