你在 App Store Connect → TestFlight 里加了外部测试员,UI 确认 “Tester added”,过了一天大家都说同一句话:“我没收到邀请邮件。” 你看测试员列表,他们都卡在 Invited 状态。让他们查垃圾箱——没有。你顺手生成的 TestFlight 公开链接打开后显示 “This beta isn’t accepting any new testers right now”,可你的 group 离 10,000 上限还远。你开始怀疑外部测试到底能不能用。
能用,但外部邀请的接线比你想的多。最常见的原因、而且遥遥领先:这个版本的第一个 build 还没通过 Beta App Review,所以根本没东西可兑换,邀请也就不会发出去。排除这一条之后,才轮到测试员的邮件服务商、group → build 挂载、公开链接上限、地区不匹配。按顺序走一遍能找到原因,不用重传任何东西。
最快修复: 确认 build 状态是 Ready to Test(App Store Connect → TestFlight → External Testing → 你的 group → Builds)。如果显示 Waiting for Review 或 In Review,那邀请永远不会发——只能等 Apple。如果已经是 Ready to Test,直接跳到最短修复路径,把卡住的测试员切到公开链接。
先判断你属于哪一类
| 症状 | 最可能的原因 | 对应章节 |
|---|---|---|
| 所有外部测试员、全新 App/版本,什么都没收到 | 第一个 build 还没过 Beta App Review | 原因 1 |
| Group 里有测试员,但 Builds 标签是空的 | Group 没挂 build | 原因 2 |
| 只有一两个测试员没收到,其他人正常 | 邮箱把 Apple 发件人拦了 | 原因 3 |
| 公开链接显示 “not accepting new testers” | 测试员上限到了(或限额设得太低) | 原因 4 |
| 非团队邮箱出现在 Internal Testing 下 | 加错了 group | 原因 5 |
| 邀请到了但兑换失败 | Apple ID 地区不在你的可用地区里 | 原因 6 |
| 测试员确认地址没错,还是收不到 | 拼错 / 用了过时别名 | 原因 7 |
常见原因
按命中率排序。
1. Build 还没通过 Beta App Review
内部测试员处理完就能用任何 build。外部测试员不行——每个新版本的第一个 build 都会送进 Beta App Review,必须先批准外部邀请才会发出去。审完之前,测试员是加上了,但什么都不发,因为没东西可测。截至 2026 年 6 月,第一个 build 的审核通常 1–2 天出结果;同版本后续的 build 一般跳过完整审核,处理完很快就能用。
如何判断:App Store Connect → TestFlight → External Testing → 你的 group → Builds。状态必须是 Ready to Test。如果是 Waiting for Review、In Review 或 Rejected,邀请都不会发。(被 Rejected?到侧栏 “General” 下打开 App Review 看驳回理由。)
2. Group 里有测试员但没挂 build
你建了外部 group、加了测试员,但从没点 Add Builds 挂上 build。Group 里没 build,邀请系统就没东西可发——哪怕这个 App 别处有一个 Ready to Test 的 build 也没用。
如何判断:TestFlight → External Testing → 你的 group → Builds 标签。空的就挂一个 build。
3. 测试员邮箱过滤或拒收 noreply@email.apple.com
这是一部分测试员收不到邀请的头号原因。Apple 用 noreply@email.apple.com 发件,这封信经常落进 Gmail 的 Promotions(推广)标签(不在收件箱),或者被公司过滤器直接丢掉。.com.cn、.gov、大学 .edu 域是重灾区。个人 Gmail 和 iCloud 最可靠。
如何判断:让测试员搜整个账号(不只是收件箱文件夹)里的 noreply@email.apple.com 或 TestFlight,并专门翻一下 Promotions 和 Spam 标签。哪儿都没有,就是被拦或被埋了。
4. 公开链接测试员上限到了(或设得太低)
公开链接有一个可选限额,范围是 1 到 10,000。如果你勾了 “Set Limit” 填了个小数字、或者真到了上限,新测试员就会看到 “This beta isn’t accepting any new testers right now.” 链接被禁用时也是同一句话。
如何判断:TestFlight → External Testing → 带公开链接的 group → 在 Public Link 旁点 Manage。对照当前测试员数和限额,确认链接是启用状态。
5. 外部测试员误加到了 internal-only group
你想加外部测试员,结果加到了 Internal Testing group,而这个组只接受你 Apple Developer team 的成员(且有 App Store Connect 角色)。邀请失败,因为非团队成员当不了内部测试员。
如何判断:TestFlight → Internal Testing。看到不是你开发团队成员的邮箱,就是加错组了——移走,改到 External Testing 下加。
6. 测试员 Apple ID 地区和 App 可用地区不匹配
你的 App 只在 US/CA 可用,测试员的 Apple Account 注册在 JP。邀请(或公开链接)可能到了,但兑换会失败,因为 App 不向他的地区分发。
如何判断:App Store Connect → 你的 App → Pricing and Availability → 看国家/地区列表。让测试员确认 Apple Account 的国家:设置 → [他的名字] → 媒体与购买项目 → 查看账户 → 国家/地区。
7. 邮箱拼错或用了过时别名
你把 tester@gmail.com 打成了 tester@gmail.con,或者用了已注销的旧地址。App Store Connect 的 UI 不校验可达性——你输什么它收什么。
如何判断:TestFlight → External Testing → 你的 group → Testers。每个邮箱一个字符一个字符复查,最好复制回去发给测试员核对。
需要收集的信息
- Build 的状态(Waiting for Review / In Review / Ready to Test / Rejected)。
- Group 挂的 build。
- 你加的精确邮箱地址(直接从 App Store Connect 复制)。
- 每个受影响测试员的邮箱域(gmail.com、icloud.com、公司、.edu、.gov)。
- 报告收不到的测试员的 Apple Account 地区。
- 你用的是邮件邀请流程还是公开 TestFlight 链接。
最短修复路径
Step 1:核 Beta App Review 状态
App Store Connect → TestFlight → External Testing → 你的 group → Builds。build 状态必须是 Ready to Test。如果是 Waiting for Review 或 In Review,就只能等 Apple 批准,邀请才会发——没有办法强制。要是已经等了好几天,见 Beta App Review 太慢。
Step 2:显式给 group 挂 build
TestFlight → External Testing → 你的 group → Builds 标签 → 点 “Builds” 旁边的 add(+) → 选最新的已处理 build → Add。填好 “What to Test” 说明,然后点 Start Testing(如果是这个版本的第一个 build,则点 Submit Review)。
没挂 build 的 group 没东西可邀请。
Step 3:build 是 Ready to Test 后重发邀请
build 是 Ready to Test 且已挂上之后:
- TestFlight → External Testing → 你的 group → Testers。卡在 Invited 状态的测试员会显示一个 Resend Invite 操作,逐个点。
- 某个测试员状态卡住了,就移除再加回去,Apple 会重新发一封。
- 如果你挂 build 时没勾 “Automatically notify testers”,去 Builds → 你的平台 → 该版本 → 在 Status 下点 Notify Testers。build 状态会变成 Testing,TestFlight 会通知所有人。
Step 4:让测试员把 Apple 发件人加白名单
让测试员:
- 查 Spam、Promotions 和公司隔离箱——在整个账号里搜
noreply@email.apple.com。 - 把
noreply@email.apple.com加进联系人。 - 公司邮箱让 IT 把 Apple 的发件人 / IP 段加白名单。
- 实在不行,用个人 Gmail 或 iCloud 地址重新邀请他。
Step 5:切公开 TestFlight 链接
对邮件投递不灵的测试员,公开链接能完全绕开投递问题:
App Store Connect → TestFlight → External Testing → 你的 group → Testers 标签 → Create Public Link → 选 Open to Anyone(或 Filter by Criteria 按设备/系统筛选)→ 需要的话勾 Set Limit(1–10,000)→ Confirm → 复制 URL。
通过 WhatsApp、Slack、你自己的邮件,或任何非 Apple 通道分享这个 URL。测试员点开 → Start Testing → TestFlight App 打开 → 加入。不用邀请邮件。注意:公开链接进来的测试员在列表里显示为 Anonymous、没有邮箱,所以没法按人追踪。
Step 6:核地区可用性
App Store Connect → 你的 App → Pricing and Availability → 确认测试员的 Apple Account 国家/地区在列表里。不在的话,要么把那个地区加进可用地区,要么让测试员用一个支持地区的 Apple Account。(换 Apple Account 国家本身有一堆限制,多半不现实,所以扩可用地区是更好的办法。)
怎么确认已经修好
- 测试员在 TestFlight → External Testing → 你的 group 里的状态从 Invited 变成 Accepted,再到 Installed。
- 重发的邀请几分钟内就到(没被过滤时 Apple 的邮件几乎是秒到)。
- 用一个地区匹配你可用地区的 Apple Account 打开公开链接,会到 Start Testing 屏,而不是 “not accepting testers” 那句话。
- 加一个你自己的临时邮箱当测试,端到端走一遍——这能证明 build + group 的接线没问题,剩下的就只是各个邮箱自己的问题了。
如果还是没修好
- 用你自己的个人 Gmail 或 iCloud 邀请一次。如果秒到,那问题就在原测试员的邮箱,而不在你的配置。
- 把公开链接当主分发方式;邮件邀请只留给真的要按测试员追踪的少数 case。
- 在认定是自己账号问题之前,先查 Apple System Status 有没有 TestFlight 投递事故。
- 有个值得排除的小坑:测试员设备上已经装了 App Store 正式版,或者之前在另一个 Apple Account 上拒过/接受过,都可能卡住。让他删掉已有的那份,然后移除再加回来,用同一个干净的 Apple Account 兑换。
预防建议
- 每个版本的第一个 build 一处理完就提 Beta App Review,别等到要测的当天。每 24 小时最多可提交 6 个 build 送审。
- 至少维护一个固定的公开链接 group、配大限额,作为默认分发方式;邮件邀请摩擦更高、也更容易失败。
- 在
TESTERS.md里记下测试员邮箱和 Apple Account 地区,邀请前就能发现不匹配,而不是邀请后才发现。 - 公司测试员上来就问 IT 有没有过滤外部发件人,并把公开链接作为备选给他们。
- 每出一个新 build,就给还卡在 Invited 的人重发(或点 Notify Testers)——他们可能把原邮件弄丢了。
常见问题
外部测试员每个 build 都要重新过一次 Beta App Review 吗? 不用。只有每个版本的第一个 build 要走完整 Beta App Review(截至 2026 年 6 月通常 1–2 天)。同版本后续的 build 一般跳过完整审核,处理完很快就能用。
测试员卡在 “Invited” 是什么意思? 意思是 Apple 已发出(或排队)了邀请,但他还没在 TestFlight 里打开。要么邮件根本没到(原因 3),要么他没去点。用 Resend Invite,或者把他切到公开链接。
我明明没到 10,000,公开链接为什么显示 “not accepting new testers”? 你把 Set Limit 设了个很低的值、链接被禁用了,或者这个链接到了它自己的上限。在公开链接旁点 Manage,查一下限额和启用状态——10,000 是上限,不等于你当前的设置。
邀请邮件应该多久到? 没被过滤时基本是秒到——几秒到一两分钟。如果在一个干净的 Gmail/iCloud 地址上重发后约 30 分钟还没到,就当成投递(邮箱)问题,转用公开链接。
我能看到谁是通过公开链接加入的吗? 看不到名字和邮箱——他们显示为 Anonymous、没有地址。如果你需要按测试员区分身份(比如归因崩溃 / 反馈),就改用邮件邀请。