内部测试是 Play Console 里唯一能在「应用设置」完成之前就开启的测试轨道,也是唯一能让测试包在几分钟内装到测试员手机上的轨道。它同时也是最被低估的一条轨道:很多团队只把它当成走向封闭测试前的一道礼节,结果接下来一周都在处理同一个问题——测试员根本没收到加入链接、新上传的 CSV 覆盖了原有邮箱列表,或者所有人装上的其实是正式版。本文把内部测试轨道从头走一遍:测试员列表、每个应用 100 人的上限、可分享的加入链接、版本号如何决定测试员实际装到哪个包,以及完全不需要开轨道、只用一条链接交付单个安装包的「内部应用共享」。


三条测试轨道,以及只有内部测试才能做到的两件事

Play Console 提供三条发布前的测试轨道。内部测试把安装包分发给每个应用最多 100 名测试员,用于快速的质量检查;封闭测试把范围扩大到你自己控制的测试组;开放测试则把测试版本放到 Google Play 上,任何人都可以加入。Google 官方的建议很明确:先跑内部测试,再扩展到小规模封闭测试组。

内部测试有两个真正独有的特性:

还有四条规则决定了「谁能真的测到」。测试员可以来自任何国家/地区——即使内部测试员所在国家/地区并没有分发你的正式版、开放测试版或封闭测试版,他依然能拿到内部测试的访问权。测试员在内部测试轨道上可以免费安装付费应用,但应用内购买仍需把测试员加入许可测试员(license testers)名单才能免费。内部测试员不受设备排除规则限制。此外,内部测试可能不经过标准的 Play 政策审核或安全审核:处于内部测试轨道的应用可豁免数据安全(Data safety)表单。

两条限制同样重要。测试员不能对测试版本公开发表评价,测试用户的反馈也永远不会影响应用的公开评分。而加入链接只在应用状态为已发布(Published)时才显示——处于草稿或待发布状态的应用根本没有加入链接,这正是「链接怎么不见了」最常见的真实原因。

第一步 —— 建立测试员邮箱列表

  1. 登录 Play Console,选择应用,进入 Test and release > Testing > Internal testing。
  2. 打开 Testers 标签页,点击 Create email list。
  3. 填写列表名称。同一个列表可以在这台账号下的任意应用、未来的任意测试中重复使用。
  4. 用逗号分隔粘贴邮箱地址,或点击 Upload CSV file。CSV 文件里每个邮箱必须独占一行且不带逗号。两个最容易踩的坑:上传 CSV 会覆盖你此前手动输入或上传过的所有地址;Play Console 不接受以 UTF-8 with BOM 保存的 CSV 文件。
  5. 点击 Save changes,再点 Create。

任何 Google 账号或 Google Workspace 账号都可以加入测试。如果部分测试员属于使用 managed Google Play 的企业组织,就必须单独打开这条通道:在应用的 Advanced settings 页面(Test and release > Advanced settings)打开 Managed Google Play 标签页,勾选 Turn on,并把该组织加入你的定向列表。注意这里的代价——打开后应用会变为私有应用,将无法在公开的 Play 商店中被搜索到。

第二步 —— 添加测试员并取得加入链接

  1. 在 Testers 表格中勾选应当收到本次发布的用户列表。
  2. 填写反馈网址或反馈邮箱。它会显示在测试员加入页面上,也是内部测试员唯一可用的私密反馈渠道——他们无法使用公开评价。
  3. 复制可分享链接。内部测试与封闭测试的应用无法通过 Google Play 搜索到,因此这条链接是测试员唯一的安装入口,而且每一位测试员都必须自己打开链接完成加入(opt in)。

这里有两个让团队意外的行为。已加入内部测试的用户会失去加入你的开放测试与封闭测试的资格,即使你同时把他列在那些轨道的名单里也一样——要把他转到别的测试,必须先让他退出内部测试,再重新加入另一个测试。另一个是版本号逻辑:同时有资格收到多个轨道的用户,会拿到这些轨道中版本号最高的包;而内部测试员只会拿到你发布到内部测试轨道上的版本号。

第三步 —— 创建发布版本

测试信息保存完成后,按正式版的流程准备发布:创建发布版本、附加应用包、填写发布说明,然后开始发布。由于设备排除规则对内部测试员不生效,你无法在这里用排除名单来收窄受众——这个控制要到封闭测试和正式版轨道才会出现。

版本号决定测试员实际装到什么

设备安装的是「该用户有资格收到」的所有轨道中版本号最高的那个包,而所有用户都默认有资格收到正式版轨道。这一条规则派生出 Play Console 在轨道页面上报告的四种状态:

落到运营上只有一条规则:当测试员说「更新一直没收到」时,先比对内部测试轨道的版本号与线上正式版的版本号,再去排查其它原因。

内部应用共享 —— 一个包、一条链接、不开轨道

内部应用共享(Internal app sharing)与内部测试轨道是两套独立机制。你把应用包或 APK 上传到内部应用共享上传页面,拿到一条链接;这条链接既可以限定给指定的邮箱列表,也可以让任何拿到链接的人下载。它存在的意义是覆盖「开轨道太重」的场景:一个 QA 包、一个 debug 包,或者一个你不想记录到应用包浏览器里的产物。

它的规则相当特殊,值得记住:

访问控制与测试轨道思路一致。在 Uploaders and testers 标签页里,授权上传者既可以用新建邮箱列表的方式添加,也可以复用已有列表——而且授权上传者不必是 Play Console 账号的用户。下载者则有两种模式:把链接可用范围切换为 Email lists 并勾选列表,或保留默认设置,让任何拿到链接的人都能下载。

测试员如何打开内部应用共享

授权测试员不能直接安装文件,必须先在 Play 商店应用中打开这个功能:打开 Google Play,点菜单进入 Settings,在 About 区域连续点击 Play Store version 七次,出现开关后打开 Internal app sharing 并确认。有两种失败情形值得提前排除:如果测试员从未被加入名单、链接也不是对所有人开放,他当然下载不了;而如果一个应用对某位用户在 Google Play 上本就不可用——因为未在该用户所在国家/地区分发,或只存在于他无权访问的轨道上——那么即使链接本身有效,也无法通过内部应用共享交付给他。碰到 100 次下载上限或链接过期,解决办法始终只有一个:重新上传。

内部测试员不计入正式版访问权限的条件

对于 2023 年 11 月 13 日之后创建的个人开发者账号,获取正式版访问权限的前提是:运行一次至少有 12 名测试员连续加入满 14 天的封闭测试,然后从 Play Console 信息中心提交申请。内部测试员不计入这项要求,而且内部测试本身是可选环节——官方推荐把它当作起点,而不是封闭测试的替代品。如果这个月的目标是拿到正式版发布权限,那么在内部测试轨道上花的时间属于准备,而不是进度。

结束内部测试

要关闭一条轨道,打开该应用的内部测试页面,找到对应轨道并点击 End track(或 Pause track)。测试结束后,测试员不再收到更新,但已安装的应用会保留在他们设备上,不会被远程卸载。你的测试员邮箱列表会保留下来,可以在账号下任意应用中复用,也能直接用于下一条你要开启的轨道。

开启内部测试轨道前的检查清单

  1. 包名是否已经确定?第一次上传安装产物后它就无法再改。
  2. 测试员列表是否已建好,且地址正是测试员将用于登录的账号?
  3. 是否设置了反馈地址,让测试员有地方报告问题?
  4. 是否比对过内部测试版本号与正式版版本号,避免发布被遮蔽的包?
  5. 对于一次性构建,内部应用共享是不是比开一条轨道更合适?
  6. 测试员是否清楚必须先打开加入链接、或先启用内部应用共享?
  7. 若涉及付费应用,测试员是自行支付应用内购买,还是需要加入许可测试员名单?

一句话模型:内部测试快、私密,而且在应用设置完成前就能开启——每个应用最多 100 名测试员、包几分钟内生效、付费应用可免费安装、设备排除规则不适用、也不影响公开评分。真正决定测试员收到哪个包的是版本号,所以任何异常都先拿它和正式版比对。而当你只需要把某一个包交给某一个人时,用内部应用共享,根本不必开轨道。


资料来源