版本记录
版本号 | 时间 |
---|---|
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,watchOS
和tvOS
应用进行测试。内容来自翻译。
接着看一下写作环境:
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 ID
和app 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
,并且已设置Team
和Signing Certificate
。 如果您不使用自己的应用程序,则必须将bundle ID
更改为唯一的内容。
![](https://img.haomeiwen.com/i3691932/2a637dea274bdf5d.png)
现在,构建并存档该应用程序。 这是一种编译应用程序并将其导出到上传到App Store
的程序包中的方法。
首先,在scheme
选择器中选择Generic iOS Device
:
![](https://img.haomeiwen.com/i3691932/66bff8d37fcbe18b.png)
然后,使用Product ▸ Archive
菜单创建一个存档:
![](https://img.haomeiwen.com/i3691932/d14c4ede9daa8ff5.png)
如果构建一切正常,Xcode
将在Archives
选项卡中使用您的应用打开管理器。
![](https://img.haomeiwen.com/i3691932/b85322198ab9f5a7.png)
点击Distribute App
:
![](https://img.haomeiwen.com/i3691932/c067cd70dd4c83a4.png)
接下来,您将选择distribution
方式。 选择App Store Connect
,因为这是使用TestFlight
以及在App Store
上发布时的分发方式。 点击Next
。
![](https://img.haomeiwen.com/i3691932/48c92e384816e7b9.png)
现在,选择目的地。 保持Upload
处于选中状态,然后单击Next
。 Export
选项用于保存签名的archive
存档,并在以后使用其他工具上载。
![](https://img.haomeiwen.com/i3691932/f34f9a3fcd957dd4.png)
Xcode将准备提交您的应用程序; 这包括检查您的App Store
凭据。 App Store
将显示带有distribution
选项的提示,默认情况下,Xcode将选中所有复选框。 像这样保留它们,然后单击Next
。
![](https://img.haomeiwen.com/i3691932/a754f235c9c8f3ef.png)
上面显示的两个选项是:
- 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
。
![](https://img.haomeiwen.com/i3691932/e37607ae292a9cf5.png)
注意:您必须已经具有
App Store distribution
证书。 否则,这会提示您创建一个。![]()
如果出现提示,请导出签名证书并将其存储在安全的地方。
2. Uploading the Archive to the App Store
Xcode完成一些不可思议的工作后,将为您要提交的应用程序提供一个摘要页面。 点击Upload
。
![](https://img.haomeiwen.com/i3691932/8e6581854c67dfaa.png)
注意:如果收到
“[n]o suitable application records were found”
错误,则意味着以下两种情况之一:您未首先在App Store Connect
中创建新应用程序,或者bundle identifier
不匹配。 确保您已同意所有条款并签署了App Store Connect
中的所有合同。![]()
您的应用程序将开始上传到App Store Connect
。 Xcode
在编译,验证和签名应用程序时会显示各种消息。
![](https://img.haomeiwen.com/i3691932/8ce70cc850c01030.png)
上传完成后,您会看到以下消息:
![](https://img.haomeiwen.com/i3691932/c59a2e31a1df67ad.png)
现在,您可以微笑并单击Done
。
这就是Xcode所需的全部工作。现在,您可以在App Store Connect
上使用Beta
版本,在该版本中,您将完成剩下的工作来设置TestFlight
。
Types of Testers
您的构建现在可以进行测试了,但是谁来测试呢?
Apple
为TestFlight
定义了两种类型的测试人员:
-
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
部分。 对于此示例,请使用您自己的电子邮件地址。 如果您要添加其他内部测试人员,则可以使用他们的电子邮件地址,他们将执行接受邀请的步骤。
![](https://img.haomeiwen.com/i3691932/40b64d30e0f9c645.png)
单击+
按钮添加新用户。 然后,使用您有权访问的电子邮件地址填写新的用户信息。
注意:如果输入的电子邮件地址未与
Apple ID
关联,则测试人员必须创建一个Apple ID
才能接受邀请。 这仅适用于内部测试人员,因为他们需要访问App Store Connect
。
现在,为新用户分配一个角色。 通过单击See Permissions
查看每个角色的特权,然后选择适当的特权。 您还可以选择通过Apps
下拉列表限制对单个应用程序的访问,或保留默认的All Apps
访问权限。
![](https://img.haomeiwen.com/i3691932/caf212207af0ba69.png)
如果不确定要选择哪个角色,请使用App Manager
,它可以进行Beta
测试管理并可以下载应用程序。 设置新用户后,请点击Invite
。 这会将电子邮件发送给新用户,该用户必须接受邀请,然后才能选择该人作为测试人员。
![](https://img.haomeiwen.com/i3691932/95c0f34dcb494f5e.png)
转到新用户电子邮件地址的收件箱,找到标题为You’ve been invited to App Store Connect
的电子邮件,然后单击Accept Invitation
。 完成此过程后,新用户就有资格成为内部测试人员。
![](https://img.haomeiwen.com/i3691932/1031c9f90ad3cb32.png)
创建新的内部Beta
测试人员只是该过程的第一部分。 剩下的步骤是邀请该特定人员测试您的最新版本。
是时候在您的应用上启用测试了,所以测试人员实际上可以进行测试!
1. Starting Beta Testing
要开始对您的应用进行Beta
测试,请转到App Store Connect
主页上的My Apps
部分,然后单击您的应用:
![](https://img.haomeiwen.com/i3691932/ed7d39ea222cb52d.png)
选择Activity
选项卡。 您可以在这里找到之前上传的版本。 如果仍然标记为Processing
,请自己煮一杯咖啡,然后再回来。
![](https://img.haomeiwen.com/i3691932/409e597a3a99871a.png)
接下来,单击TestFlight
选项卡。 您想发送给内部测试人员的版本旁边可能会出现一个黄色警告标志。 在这种情况下,请单击警告标志并完成所需的步骤。
![](https://img.haomeiwen.com/i3691932/e16f5c6a29672896.png)
完成后,构建状态将更改为Ready to Test
:
![](https://img.haomeiwen.com/i3691932/a1908db1483843e0.png)
接下来,从左侧菜单中单击App Store Connect Users
。 您会看到内部测试人员的可搜索列表。 选择您要添加为该版本的内部测试人员的人员,然后点击Add
。
![](https://img.haomeiwen.com/i3691932/f077eaeb70485d2a.png)
所有选定的测试人员都将收到一封带有链接的电子邮件,该链接可以通过TestFlight
应用程序下载并安装此版本。 您将在本教程的后面部分找到有关测试人员观点的详细信息。
但是首先,是时候学习如何添加外部测试人员了。
Adding External Testers
首先,从左侧菜单中单击Test Information
,然后填写必要的信息。 这包括:
Beta App Description
Feedback Email
Contact Information
在提交用于外部测试的构建时,必须提供此信息。 完成后,单击Save
。
![](https://img.haomeiwen.com/i3691932/d9220bc82a12505b.png)
现在,从左侧菜单中单击Add External Testers
。 App Store Connect
要求您创建一个新的测试组。 取决于您如何选择管理群组。 您可以为所有测试人员提供一个组,为不同类型的测试人员提供一个不同的组,或者为不同应用程序提供一个不同的组。 在本教程中,您将创建一个名为Top-Testers
的小组。
![](https://img.haomeiwen.com/i3691932/def730fc9e946b28.png)
创建小组后,就可以开始向其添加外部测试人员了。
单击Top-Testers
下Testers(0)
旁边的+
:
![](https://img.haomeiwen.com/i3691932/b35f26f8bee2d9ac.png)
您可以选择手动添加新测试人员,添加现有测试人员(已经在测试您的应用程序或构建中的另一个应用程序的人员)或从CSV
文件导入测试人员之间。 在本教程中,您将手动添加新的测试人员。 选择Add New Testers
,然后单击Next
。
![](https://img.haomeiwen.com/i3691932/d8777a58764f830e.png)
添加您要添加的任何外部测试人员的电子邮件地址以及名字和姓氏。 完成后,点击Add
。 您始终可以通过单击测试组页面上的+
按钮来添加更多外部测试人员。 您添加的每个人都计入10,000
个外部测试人员的数量上限。
![](https://img.haomeiwen.com/i3691932/a8def2a23c663ff8.png)
![](https://img.haomeiwen.com/i3691932/b9d955e346a5ca76.png)
1. Selecting a Build
现在,您需要选择一个版本以供外部测试人员进行测试。 在Builds
选项卡上,单击+
按钮:
![](https://img.haomeiwen.com/i3691932/98925125ce102789.png)
然后,选择您的构建并单击Next
:
![](https://img.haomeiwen.com/i3691932/bf8c36da898acb47.png)
注意:您可能想知道为什么要分别为内部和外部测试人员选择构建。 好吧,您可能希望内部和外部测试人员测试不同的
builds
。例如,内部测试人员可以测试您的
master build
,而外部测试人员可以测试您的下一个候选版本。 通过让您独立选择内部和外部测试人员的内部版本,App Store Connect
可以进行这种分离。 您也可以使用它为不同的测试组选择不同的版本。
App Store Connect
可能会问更多问题,例如该应用程序是否需要登录。 完成其余步骤,包括提供显示给外部测试人员的测试信息。
![](https://img.haomeiwen.com/i3691932/ef038498fdfaf115.png)
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
。
![](https://img.haomeiwen.com/i3691932/0702c7291a6d9c6c.png)
注意:如果您尚未为此组启用构建,则可以在上方的
Builds
标签下添加一个。 如果该版本尚未经过审核,它将提示您将其提交以进行审核,并且您必须等待批准。
App Store Connect
会再次确认您确定要继续。 然后,您将获得一个TestFlight
链接,您可以按任意方式共享它。 此链接的工作方式与邀请电子邮件的工作方式完全相同:测试人员必须在目标设备上将其打开。 该页面将提示用户安装TestFlight
应用程序(如果尚未安装的话),然后将允许他们通过TestFlight
安装您的应用程序。
![](https://img.haomeiwen.com/i3691932/cfa510ed7b46abd5.png)
从某种意义上说,该链接比邀请电子邮件更方便。 但是分享时要小心! 通过该链接邀请的测试人员不超过10,000
个测试人员的限制,但是您可以设置自己的限制,以减少可以通过该链接获取应用程序的人数。 如果您不想放弃10,000
个应用程序的免费副本。
上面总结了您对开发人员对应用程序测试的看法。 现在,您将从测试人员的角度了解其外观。
Testers’ Point of View
本节介绍测试人员访问可用版本所需要的内容。 熟悉这个过程的这一部分是明智的,因为会出现问题!
1. Accepting the Invitation
内部和外部测试人员都从TestFlight
收到类似的电子邮件。 这封电子邮件将邀请用户在TestFlight
中查看该应用程序。
![](https://img.haomeiwen.com/i3691932/015ac86f1286ef76.png)
该链接看起来有点不同,因为它分两个步骤:下载TestFlight
和应用程序安装。 否则,该过程与通过电子邮件进行的过程几乎相同。
![](https://img.haomeiwen.com/i3691932/110f52f3551f84c9.jpg)
2. Installing TestFlight
来自两个邀请的链接将用户带到App Store
中的TestFlight
:
![](https://img.haomeiwen.com/i3691932/ec6346b03c42c717.jpeg)
用户将下载并启动TestFlight
应用程序。
3. Redeeming Your App
当有可用的新版本或添加新的测试人员时,测试人员会收到邀请以通过TestFlight
测试该版本。
注意:如果您是实时跟踪,则
App Store
审核不太可能有时间批准您的构建。 因此,您的应用目前仅对内部测试人员可用。
打开邀请并单击View in TestFlight
后,TestFlight
将使用TestFlight
应用程序中当前使用的Apple ID
启动并兑换邀请。
然后,用户将看到一个应用程序预览页面。 这将显示应用程序图标,内部版本号和您提供的测试信息。 屏幕将如下所示:
![](https://img.haomeiwen.com/i3691932/a71dff7e755619c0.jpg)
注意:电子邮件中的
View in TestFlight
链接可通过universal links使用,因此,如果由于某种原因而无法打开TestFlight
,则用户可以复制该链接并在Safari
中打开它。 然后,他们将看到一个兑换代码,可以将其复制并粘贴到TestFlight
应用中。
点击Install
后,该应用程序将下载并出现在主屏幕上。 现在,用户可以像对待其他任何应用程序一样对待它。 在SpringBoard
中,该名称旁边会显示一个橙色点,表示已安装TestFlight
。
![](https://img.haomeiwen.com/i3691932/df7f5e5e231139f8.jpg)
4. Running the App
测试人员首次启动该应用程序时,将看到与以前相同的测试信息屏幕。 还有另一个屏幕,其中包含有关如何截取屏幕截图的说明,以及用于获取更多信息的链接。 这是对测试人员的便利提醒,它寻找什么以及如何提供反馈。
![](https://img.haomeiwen.com/i3691932/b755fec401c6299d.jpg)
从现在开始,只要有该应用的新版本可用,用户就会看到来自TestFlight
的通知。 他们需要做的就是更新应用程序并运行最新版本。
Giving and Receiving Feedback
TestFlight
为测试人员提供了几种向开发人员提供反馈的方法。
首先是通过屏幕截图机制。 如果用户拍摄了该应用的屏幕截图,则将获得Share Beta Feedback…
选项。 这可以通过编辑窗格中的共享操作显示,也可以在他们点击Done
后立即显示。
![](https://img.haomeiwen.com/i3691932/d6a738747070e5d3.jpeg)
当用户选择此选项时,他们将有机会添加note
- 希望其中包括有用的信息和复制步骤。
![](https://img.haomeiwen.com/i3691932/e43ae6bd36143b0b.jpg)
用户还可以通过TestFlight
应用程序留下反馈。 这将显示与屏幕截图反馈相同的共享表(share sheet)
。 通过这种方法,用户可以附加图库中的任何照片,也可以完全不附加照片。
最后,用户可以在主屏幕上使用应用程序快捷方式跳转到TestFlight
应用程序中的此共享机制。
![](https://img.haomeiwen.com/i3691932/b4c0be3d20541c45.png)
1. Getting the Feedback
测试人员提交反馈后,它将显示在AppFlight
选项卡的App Store Connect
中。 在左侧的导航面板中,将有一个Feedback
部分,其中包含一个Screenshots
菜单项。这都是通过TestFlight
应用发送的所有反馈的地方,无论是否贴有图片。
![](https://img.haomeiwen.com/i3691932/290f5f0f2f409dc5.png)
点击一个项目将显示屏幕截图,用户输入的反馈以及有关用户和用户设备的信息。 这包括用户的电子邮件,使用该应用程序的时间,操作系统和设备以及其他指标,例如电池电量和可用磁盘空间。
![](https://img.haomeiwen.com/i3691932/bb075e269f959a7d.png)
这将为您提供足够的信息以开始调试,如果没有,则提供了一种联系用户以获取更多信息的方法。
Crash Reports
除了发送反馈之外,安装了TestFlight
的应用程序在崩溃报告方面也具有特殊的特权。 如果应用程序崩溃,则会弹出警报,使用户有机会将崩溃报告发送给开发人员。
![](https://img.haomeiwen.com/i3691932/626029f679e8527e.jpg)
如果用户点击Share
,崩溃报告将上传到App Store Connect
中供您查看。 这些报告在同义的Crashes
菜单下显示为反馈项。
![](https://img.haomeiwen.com/i3691932/f477d19611abaad8.png)
崩溃报告包含与其他反馈相同的信息,包括有关用户和设备的信息,以及他们在共享表(share sheet)
中键入的任何内容。 如果单击Download
按钮,它将下载此信息以及可以在Xcode
中打开的.crash
文件。 这将帮助您找出解决问题的方法。
![](https://img.haomeiwen.com/i3691932/3c0cfed5ecf9e7e0.png)
如果您有兴趣了解有关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
测试,感兴趣的给个赞或者关注~~~
![](https://img.haomeiwen.com/i3691932/10157ac4b4e18e69.png)
网友评论