App的分发测试(七) —— TestFlight Beta测试(一)

版本记录

版本号 时间
V1.0 2020.08.20 星期四

前言

我们在做App开发的时候,开发人员开发完成以后就要交给QA进行测试了,有几种方式,一种就是将QA的测试机加到账号里面的Device里面,这个有个数限制(每种硬件类型不能超过100台,即使删除设备也不会重置),然后利用三方平台比如说蒲公英进行分发,还有一种方法就是使用TestFlight进行测试,这个专题就主要说一下App分发测试相关的内容。感兴趣的看上面几篇。
1. App的分发测试(一) —— 浅谈蒲公英平台分发测试的使用(一)
2. App的分发测试(二) —— TestFlight集成和分发测试(一)
3. App的分发测试(三) —— fastlane自动化打包并上传(一)
4. App的分发测试(四) —— fastlane自动化打包(一)
5. App的分发测试(五) —— GitHub, Fastlane & Jenkins集成(一)
6. App的分发测试(六) —— GitHub, Fastlane & Jenkins集成(二)

开始

首先看些主要内容:

TestFlight Beta Testing是一种Apple产品,可以轻松邀请用户在将它们发布到App Store之前对其iOS,iPadOS,watchOStvOS应用进行测试。内容来自翻译。

接着看一下写作环境:

Swift 5, iOS 13, Xcode 11

下面就是正文啦。

TestFlight教程将引导您逐步使用TestFlight作为应用发布release过程的一部分。 通过TestFlight,您可以通过共享链接或将电子邮件发送到其Apple ID来将准备就绪的应用程序发送给多达10,000名测试人员。 无需从他们那里收集设备信息,并且这些信息也不会计入您的开发设备限制。

在本教程中,您将学习如何:

  • 将构建提交到App Store Connect
  • 添加内部和外部测试人员。
  • 开始Beta测试。
  • 接收反馈和崩溃报告。

您还将从测试人员的角度看到该过程的工作方式。

这是您不编写代码的罕见教程之一。 请按照以下步骤操作,您将立即开始使用TestFlight

本教程使用来自 2D Apple Games by Tutorials的DropCharge的更新版本为例。 由于您将测试构建提交给Apple进行Beta版应用审核(Beta App Review),因此请遵循您自己的项目。

注意:在本教程的大部分内容中,您都可以使用DropCharge进行操作,但是您必须更改bundle IDapp name才能上传内部测试版本。 该应用不会通过应用审核,因此您无法将其用于外部测试; 为此,您必须使用自己的应用。

本教程假定您的应用程序已设置为provisioning,并且在Developer Portal 和 App Store Connect中均已创建了app ID

此设置不在本教程的讨论范围之内,但是您可以在我们分为两部分的教程How to Submit An App to Apple: From No Account to App Store中获得提交应用程序并将其发布在App Store上所需的所有信息。


Submitting Your Build to App Store Connect

一旦掌握了它,TestFlight的过程就很简单。 您需要执行以下步骤:

  • 1) Archive您的应用。
  • 2) 将Archive上传到App Store

1. Archiving Your App

Xcode中打开您的项目。 在目标编辑器中的Signing & Capabilities下,确保您具有Bundle Identifier,并且已设置TeamSigning Certificate。 如果您不使用自己的应用程序,则必须将bundle ID更改为唯一的内容。

现在,构建并存档该应用程序。 这是一种编译应用程序并将其导出到上传到App Store的程序包中的方法。

首先,在scheme选择器中选择Generic iOS Device

然后,使用Product ▸ Archive菜单创建一个存档:

如果构建一切正常,Xcode将在Archives选项卡中使用您的应用打开管理器。

点击Distribute App

接下来,您将选择distribution方式。 选择App Store Connect,因为这是使用TestFlight以及在App Store上发布时的分发方式。 点击Next

现在,选择目的地。 保持Upload处于选中状态,然后单击NextExport选项用于保存签名的archive存档,并在以后使用其他工具上载。

Xcode将准备提交您的应用程序; 这包括检查您的App Store凭据。 App Store将显示带有distribution选项的提示,默认情况下,Xcode将选中所有复选框。 像这样保留它们,然后单击Next

上面显示的两个选项是:

  • 1) Include bitcode for iOS content - 包括iOS内容的位代码:这允许App Store稍后重新编译和优化代码以用于新设备。 很少需要禁用它。
  • 2) Upload your app’s symbols to receive symbolicated reports from Apple - 上载应用程序的符号以从Apple接收符号化报告:这会将调试符号与应用程序一起上传,以便您获得符号化的崩溃报告。 这在进行TestFlight测试时很有帮助。

下一个屏幕要求distribution签名选项。 您可以选择自动签名,也可以手动选择分发证书和配置文件(provisioning profile)。 让Xcode管理您的签名可以使大部分时间的生活变得更加轻松。 但是,如果您要自己管理签名,请选择第二个选项以及相关证书。 准备就绪后,请单击Next

注意:您必须已经具有App Store distribution证书。 否则,这会提示您创建一个。

如果出现提示,请导出签名证书并将其存储在安全的地方。

2. Uploading the Archive to the App Store

Xcode完成一些不可思议的工作后,将为您要提交的应用程序提供一个摘要页面。 点击Upload

注意:如果收到“[n]o suitable application records were found”错误,则意味着以下两种情况之一:您未首先在App Store Connect中创建新应用程序,或者bundle identifier不匹配。 确保您已同意所有条款并签署了App Store Connect中的所有合同。

您的应用程序将开始上传到App Store ConnectXcode在编译,验证和签名应用程序时会显示各种消息。

上传完成后,您会看到以下消息:

现在,您可以微笑并单击Done

这就是Xcode所需的全部工作。现在,您可以在App Store Connect上使用Beta版本,在该版本中,您将完成剩下的工作来设置TestFlight


Types of Testers

您的构建现在可以进行测试了,但是谁来测试呢?

AppleTestFlight定义了两种类型的测试人员:

  • Internal Tester - 内部测试人员:这是一个App Store Connect用户,具有Admin, App Manager, Legal, Developer or Marketer角色,并有权访问您的应用程序。通常是您正在为其开发应用程序的团队成员或客户。您最多可以添加100个内部测试人员,每个成员最多可以在30个设备上进行测试。
  • External Tester - 外部测试人员:这是您团队之外要测试您的应用的任何用户。外部测试人员无法访问您的App Store Connect帐户,并且只能下载和安装该应用程序。您最多可以添加10,000个外部测试人员。

在外部测试人员可以测试您的应用之前,您必须像将其提交给常规App Store一样,将您的应用提交给Apple进行审查。这些评论往往比普通的应用评论更快,但不能保证。获得批准后,您可以将您的应用发送给外部测试人员。

App Store Connect一旦完成构建处理,就会通知所有内部测试人员。苹果完成对Beta版应用的审核后,外部测试人员会收到通知,以确保该应用符合App Store Review Guidelines。要控制谁获得特定版本,请使用不同的外部测试组。您将了解有关外部测试人员的更多信息,以及以后如何提交Beta版应用审核的信息;现在,您将专注于内部测试人员。


Adding Internal Testers

要添加内部测试人员,请转到App Store Connect中的Users and Access部分。 对于此示例,请使用您自己的电子邮件地址。 如果您要添加其他内部测试人员,则可以使用他们的电子邮件地址,他们将执行接受邀请的步骤。

单击+按钮添加新用户。 然后,使用您有权访问的电子邮件地址填写新的用户信息。

注意:如果输入的电子邮件地址未与Apple ID关联,则测试人员必须创建一个Apple ID才能接受邀请。 这仅适用于内部测试人员,因为他们需要访问App Store Connect

现在,为新用户分配一个角色。 通过单击See Permissions查看每个角色的特权,然后选择适当的特权。 您还可以选择通过Apps下拉列表限制对单个应用程序的访问,或保留默认的All Apps访问权限。

如果不确定要选择哪个角色,请使用App Manager,它可以进行Beta测试管理并可以下载应用程序。 设置新用户后,请点击Invite。 这会将电子邮件发送给新用户,该用户必须接受邀请,然后才能选择该人作为测试人员。

转到新用户电子邮件地址的收件箱,找到标题为You’ve been invited to App Store Connect的电子邮件,然后单击Accept Invitation。 完成此过程后,新用户就有资格成为内部测试人员。

创建新的内部Beta测试人员只是该过程的第一部分。 剩下的步骤是邀请该特定人员测试您的最新版本。

是时候在您的应用上启用测试了,所以测试人员实际上可以进行测试!

1. Starting Beta Testing

要开始对您的应用进行Beta测试,请转到App Store Connect主页上的My Apps部分,然后单击您的应用:

选择Activity选项卡。 您可以在这里找到之前上传的版本。 如果仍然标记为Processing,请自己煮一杯咖啡,然后再回来。

接下来,单击TestFlight选项卡。 您想发送给内部测试人员的版本旁边可能会出现一个黄色警告标志。 在这种情况下,请单击警告标志并完成所需的步骤。

完成后,构建状态将更改为Ready to Test

接下来,从左侧菜单中单击App Store Connect Users。 您会看到内部测试人员的可搜索列表。 选择您要添加为该版本的内部测试人员的人员,然后点击Add

所有选定的测试人员都将收到一封带有链接的电子邮件,该链接可以通过TestFlight应用程序下载并安装此版本。 您将在本教程的后面部分找到有关测试人员观点的详细信息。

但是首先,是时候学习如何添加外部测试人员了。


Adding External Testers

首先,从左侧菜单中单击Test Information,然后填写必要的信息。 这包括:

  • Beta App Description
  • Feedback Email
  • Contact Information

在提交用于外部测试的构建时,必须提供此信息。 完成后,单击Save

现在,从左侧菜单中单击Add External TestersApp Store Connect要求您创建一个新的测试组。 取决于您如何选择管理群组。 您可以为所有测试人员提供一个组,为不同类型的测试人员提供一个不同的组,或者为不同应用程序提供一个不同的组。 在本教程中,您将创建一个名为Top-Testers的小组。

创建小组后,就可以开始向其添加外部测试人员了。

单击Top-TestersTesters(0)旁边的+

您可以选择手动添加新测试人员,添加现有测试人员(已经在测试您的应用程序或构建中的另一个应用程序的人员)或从CSV文件导入测试人员之间。 在本教程中,您将手动添加新的测试人员。 选择Add New Testers,然后单击Next

添加您要添加的任何外部测试人员的电子邮件地址以及名字和姓氏。 完成后,点击Add。 您始终可以通过单击测试组页面上的+按钮来添加更多外部测试人员。 您添加的每个人都计入10,000个外部测试人员的数量上限。

1. Selecting a Build

现在,您需要选择一个版本以供外部测试人员进行测试。 在Builds选项卡上,单击+按钮:

然后,选择您的构建并单击Next

注意:您可能想知道为什么要分别为内部和外部测试人员选择构建。 好吧,您可能希望内部和外部测试人员测试不同的builds

例如,内部测试人员可以测试您的master build,而外部测试人员可以测试您的下一个候选版本。 通过让您独立选择内部和外部测试人员的内部版本,App Store Connect可以进行这种分离。 您也可以使用它为不同的测试组选择不同的版本。

App Store Connect可能会问更多问题,例如该应用程序是否需要登录。 完成其余步骤,包括提供显示给外部测试人员的测试信息。

Automatically notify testers,自动通知测试人员已经勾选上。如果要在构建可用时手动通知测试人员,请取消选中此框。完成后,单击Submit for Review

App Store Connect将您的应用程序添加到审阅队列,并将其状态更改为Waiting for Review。要获得通过,您的构建必须符合 App Store Review Guidelines。审核通常不超过48小时。

Apple批准您的应用程序版本后,后续的版本无需更改版本号即可进行审核。

该应用通过Beta App Review后,您会收到一封电子邮件,确认您的应用可以开始外部测试。如果您选中了Automatically notify testers复选框,则外部测试人员此时将收到通知电子邮件。否则,您必须返回App Store Connect才能开始测试。然后,您的外部测试人员将收到邀请电子邮件。

注意:内部版本仅可使用90天。如果您想让测试人员在此之后使用该应用,则必须在到期日期之前上传新的版本,测试人员必须下载该新版本。

1. Inviting by Link

您可以创建一个公共链接,允许任何人安装该应用,而无需通过电子邮件添加外部测试人员。 如果您不提前知道测试组(例如公开Beta测试),此功能将非常有用。

Public Link下,单击Enable Public Link

注意:如果您尚未为此组启用构建,则可以在上方的Builds标签下添加一个。 如果该版本尚未经过审核,它将提示您将其提交以进行审核,并且您必须等待批准。

App Store Connect会再次确认您确定要继续。 然后,您将获得一个TestFlight链接,您可以按任意方式共享它。 此链接的工作方式与邀请电子邮件的工作方式完全相同:测试人员必须在目标设备上将其打开。 该页面将提示用户安装TestFlight应用程序(如果尚未安装的话),然后将允许他们通过TestFlight安装您的应用程序。

从某种意义上说,该链接比邀请电子邮件更方便。 但是分享时要小心! 通过该链接邀请的测试人员不超过10,000个测试人员的限制,但是您可以设置自己的限制,以减少可以通过该链接获取应用程序的人数。 如果您不想放弃10,000个应用程序的免费副本。

上面总结了您对开发人员对应用程序测试的看法。 现在,您将从测试人员的角度了解其外观。


Testers’ Point of View

本节介绍测试人员访问可用版本所需要的内容。 熟悉这个过程的这一部分是明智的,因为会出现问题!

1. Accepting the Invitation

内部和外部测试人员都从TestFlight收到类似的电子邮件。 这封电子邮件将邀请用户在TestFlight中查看该应用程序。

该链接看起来有点不同,因为它分两个步骤:下载TestFlight和应用程序安装。 否则,该过程与通过电子邮件进行的过程几乎相同。

2. Installing TestFlight

来自两个邀请的链接将用户带到App Store中的TestFlight

用户将下载并启动TestFlight应用程序。

3. Redeeming Your App

当有可用的新版本或添加新的测试人员时,测试人员会收到邀请以通过TestFlight测试该版本。

注意:如果您是实时跟踪,则App Store审核不太可能有时间批准您的构建。 因此,您的应用目前仅对内部测试人员可用。

打开邀请并单击View in TestFlight后,TestFlight将使用TestFlight应用程序中当前使用的Apple ID启动并兑换邀请。

然后,用户将看到一个应用程序预览页面。 这将显示应用程序图标,内部版本号和您提供的测试信息。 屏幕将如下所示:

注意:电子邮件中的View in TestFlight链接可通过universal links使用,因此,如果由于某种原因而无法打开TestFlight,则用户可以复制该链接并在Safari中打开它。 然后,他们将看到一个兑换代码,可以将其复制并粘贴到TestFlight应用中。

点击Install后,该应用程序将下载并出现在主屏幕上。 现在,用户可以像对待其他任何应用程序一样对待它。 在SpringBoard中,该名称旁边会显示一个橙色点,表示已安装TestFlight

4. Running the App

测试人员首次启动该应用程序时,将看到与以前相同的测试信息屏幕。 还有另一个屏幕,其中包含有关如何截取屏幕截图的说明,以及用于获取更多信息的链接。 这是对测试人员的便利提醒,它寻找什么以及如何提供反馈。

从现在开始,只要有该应用的新版本可用,用户就会看到来自TestFlight的通知。 他们需要做的就是更新应用程序并运行最新版本。


Giving and Receiving Feedback

TestFlight为测试人员提供了几种向开发人员提供反馈的方法。

首先是通过屏幕截图机制。 如果用户拍摄了该应用的屏幕截图,则将获得Share Beta Feedback…选项。 这可以通过编辑窗格中的共享操作显示,也可以在他们点击Done后立即显示。

当用户选择此选项时,他们将有机会添加note - 希望其中包括有用的信息和复制步骤。

用户还可以通过TestFlight应用程序留下反馈。 这将显示与屏幕截图反馈相同的共享表(share sheet)。 通过这种方法,用户可以附加图库中的任何照片,也可以完全不附加照片。

最后,用户可以在主屏幕上使用应用程序快捷方式跳转到TestFlight应用程序中的此共享机制。

1. Getting the Feedback

测试人员提交反馈后,它将显示在AppFlight选项卡的App Store Connect中。 在左侧的导航面板中,将有一个Feedback部分,其中包含一个Screenshots菜单项。这都是通过TestFlight应用发送的所有反馈的地方,无论是否贴有图片。

点击一个项目将显示屏幕截图,用户输入的反馈以及有关用户和用户设备的信息。 这包括用户的电子邮件,使用该应用程序的时间,操作系统和设备以及其他指标,例如电池电量和可用磁盘空间。

这将为您提供足够的信息以开始调试,如果没有,则提供了一种联系用户以获取更多信息的方法。


Crash Reports

除了发送反馈之外,安装了TestFlight的应用程序在崩溃报告方面也具有特殊的特权。 如果应用程序崩溃,则会弹出警报,使用户有机会将崩溃报告发送给开发人员。

如果用户点击Share,崩溃报告将上传到App Store Connect中供您查看。 这些报告在同义的Crashes菜单下显示为反馈项。

崩溃报告包含与其他反馈相同的信息,包括有关用户和设备的信息,以及他们在共享表(share sheet)中键入的任何内容。 如果单击Download按钮,它将下载此信息以及可以在Xcode中打开的.crash文件。 这将帮助您找出解决问题的方法。

如果您有兴趣了解有关App Store Connect的更多信息,尤其是Beta测试,请阅读Apple的TestFlight Beta Testing Documentation。

Apple的开发人员网站上还有一个TestFlight的摘要页面summary page for TestFlight,其中包括所有相关文档的链接,以及一个视频 iTunes Connect: Development to Distribution,概述了TestFlight流程。

如果您想了解有关将应用程序提交到App Store的过程的更多信息,而不仅是其中的beta测试方面,请查看我们的两部分教程:l How to Submit An App to Apple: From No Account to App Store。

最后,有一个App Store Connect API。 使用此API,您可以邀请测试人员,上传构建版本,设置测试和合规性信息等等。 您可以在CI / CD工具中使用它。 更好的是,如果您使用fastlane,则所有自动化功能都已集成。 查看我们的 fastlane tutorial教程以获取更多信息。

后记

本篇主要讲述了TestFlight Beta测试,感兴趣的给个赞或者关注~~~

你可能感兴趣的:(App的分发测试(七) —— TestFlight Beta测试(一))