内部测试组是什么:100 人上限、无需 App Review
内部测试者是什么
内部测试者(Internal Testers)是 App Store Connect 上属于你这个开发者账户团队的成员。定义上有三个硬条件:
- 必须持有 App Store Connect 里的五种角色之一:Account Holder、Admin、App Manager、Developer、Marketing。
- 每个 App Store Connect 账户最多 100 个内部测试者(按人头不按设备)。
- Managed Apple ID 不能做内部测试者——这个限制反复出现很重要。
内部测试和外部测试最大的区别:内部测试不需要 App Review。构建上传 Processing 完、Ready to Submit 之后,加进内部组,组里的人几分钟内就能收到邀请。不需要填 Beta App Description,不需要等审核,就是这么快。
默认的内部组
每个 App 在 App Store Connect 创建后,TestFlight 面板里已经有一个默认内部组叫 「App Store Connect Users」。这个组自动包含所有在你这个 App Store Connect 账户里有以上五种角色的成员——你加新成员进团队,他们自动进这个组;你把成员从团队里移除,他们自动退出。
你也可以自己建新的内部组,比如把 QA 团队和开发团队分开——每个组可以绑定不同的构建版本,QA 测稳定版、开发测 nightly。
内部组的典型用法
内部组通常承担两个角色:
第一站 QA 滤网
外部测试首构建要等 1~3 天审核。你可以先在内部组里跑一轮:
- 上传新构建 → 加进内部组。
- 团队所有成员手机上自动收到 TestFlight 通知。
- 内部成员帮你测核心流程,崩溃的立刻回来。
- 修完、加构建号、再上传 → 自动发给所有人。
内部组基本是即时闭环——一天可以推 2~3 个构建,外部组做不到这么灵活。
Xcode 自动分发的接收端
如果你开了内部组的 Enable Automatic Distribution(自动分发),任何上传到 App Store Connect 的新构建都会自动推给组里所有人,不需要你手动加构建。这个功能和 Xcode Cloud 配合起来就是全自动:
推代码 → Xcode Cloud Archive + Upload → TestFlight 自动分给内部组 → 每人设备上弹出通知 → 点一下装新构建
一个注意点:内部组不自动包含外部组
外部测试者即使通过了公开链接或邮件邀请,也不会出现在任何内部组里。内部和外部是两条完全独立的通道,名额独立、统计独立、审核独立。
反过来也是——内部组的成员不会自动成为外部测试者。如果你想让团队成员也走外部测试流程(比如测试公开链接功能本身),需要把他们单独加到外部组里(或者给他们发外部邮件邀请)。
配额紧张时的策略
如果你的团队已经有接近 100 人,内部组名额紧张时可以考虑:
- 把非核心角色的成员暂时移除出团队(他们不会收到 TestFlight 邀请)。
- 用 Xcode 的免费个人团队签名临时给非核心成员装开发版(最多 3 台设备、7 天过期),不占 TestFlight 名额。
- 等内部测试跑得差不多了,再把外部组名额放出来。