lichess • 免费在线象棋
大型社区应用,其锦标赛、分析和社交功能需要经过严谨验证。
- Google Play 安装量
- 11.3M
- 应用商店评分
- 4.3
Beta 测试
测试人员只需安装一次 App。之后,所有的 JavaScript、HTML 或 CSS 变更都会推送到他们通过 App 加入的 beta channel,并在下次检查更新时生效。涉及 native code 的变更仍需通过 TestFlight 或 Play testing track 进行。
通过 --self-assign 允许在 Channel 上进行自我分配。您的 App 可以通过 listChannels() 列出所有 Channel,并使用 setChannel() 切换设备,从而让测试人员直接在设置界面加入 Beta 测试。
setChannel() 参考在 Capgo 控制台中设置设备覆盖 (device override),无需更改 App 即可将单个测试人员的手机分配到特定 Channel。覆盖设置将在最后一次设置后的 90 天内自动移除。
设备覆盖只需为 App 开启一次预览功能。之后,通过 get-qr 或在 upload 时使用 --qr-preview,即可打印出 Bundle 或 Channel 的 QR code 及预览链接,方便您直接发布到 QA 讨论组。
获取二维码参考Live Update 用于更新 JavaScript、HTML、CSS 和资源。当你添加插件或改动原生 code 时,请推送新的 TestFlight 或 Play 测试版本,之后即可通过 channels 进行持续迭代。
哪些场景需要 Native Build测试人员只需通过 TestFlight、Play testing track 或应用商店安装一次 App。之后,Web 层面的变更将由 Channel 接管。 哪些场景需要 Native Build
工作原理
只需安装一个 Build,创建一个测试人员可加入的 Channel,并为每次变更进行一次 CLI upload。以下所有命令均来自 Capgo 文档。
使用 Self-assignment 功能让 App 自动将设备切换至该 Channel。请在生产环境的 Channel 中保持关闭状态。
npx @capgo/cli@latest channel add beta com.example.app --self-assign
Channels 文档
setChannel() 会询问 Capgo 该 channel 是否允许自我分配,然后将其存储在设备上。triggerAutoUpdate 会立即开始检查更新。
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Join beta and check for its bundle now
await CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true })
// Leave beta and go back to the default channel
await CapacitorUpdater.unsetChannel({ triggerAutoUpdate: true })
setChannel() 参考
只需启用一次预览功能。之后,每次 upload 时都打印一个 QR code,以便测试人员和审核人员可以打开新的 bundle。
# once
npx @capgo/cli@latest app set com.example.app --preview
# every change
npx @capgo/cli@latest bundle upload --channel beta --qr-preview
get-qr 参考
将测试过的 bundle 关联到生产环境,或者先向部分生产设备推送。测试人员会一直停留在 Beta 版,直到他们主动退出。
npx @capgo/cli@latest channel set production com.example.app \
--bundle 1.4.2
# or roll it out to 10% of production first
npx @capgo/cli@latest channel set production com.example.app \
--rollout-bundle 1.4.2 --rollout-percentage 10 --rollout-enable
渐进式发布文档
QA 只需安装一个构建版本,即可在 qa、beta 和 feature 频道间切换,无需为每次 JavaScript 变更重新安装。
添加一个调用 setChannel() 的“加入 Beta”开关。退出时调用 unsetChannel() 即可返回默认频道。
通过 get-qr 发送 QR code,让产品负责人能够直接打开特定 bundle 或 channel 的预览。
使用 Capacitor 构建的应用
高频使用的消费级应用可以在向所有用户推送新体验前,先通过封闭测试组验证游戏、学习或预测流程。
大型社区应用,其锦标赛、分析和社交功能需要经过严谨验证。
教育类工作流中,onboarding 和练习变更应在发布前审核。
预测并规划产品变更的交互流程,在扩大规模前确保变更的可靠性。
CTO, 私有
“配置不到一天就完成了。基于 Channel 的发布让我能先在自己的设备上测试,再推给生产用户。”
开发者,Webincode
“能把特定 Device ID 加入指定分组,并只向这些分组推送更改,太救命了。”
nethead emeritors
“这个 updater 插件做得太棒了。它在我这儿运行完美,live updates 对快速测试迭代是极大的加速。”
常见问题
关于测试人员、build 以及哪些场景仍需 TestFlight 的简要解答。
仅适用于 Web 层面的变更。测试人员只需通过 TestFlight、Play 测试轨道或应用商店安装一次应用。之后,JavaScript、HTML、CSS 和资源文件的变更即可通过 channel 推送给他们。但如果涉及添加 plugin、升级 Capacitor,或更改原生 code 或 Capacitor 配置,则需要重新进行 Native Build。
哪些场景需要 Native Build为 beta channel 开启 self-assignment,然后在应用中的某个页面调用 setChannel({ channel: 'beta' })。Capgo 会检查该 channel 是否允许加入,并将选择存储在设备中。调用 unsetChannel() 可将设备切回默认 channel。默认 channel 本身无法通过 setChannel() 加入。
setChannel() 参考可以。在 Capgo 控制台中打开该设备并设置 channel override。配置同步到所有 edge server 最多需要 2 分钟,并在最后一次设置后的 90 天后自动移除。通过 setChannel() 在 App 中选择的 channel 不会出现在该列表中。
设备覆盖请为每次 Native Build 增加 CapacitorUpdater.version。在默认设置下,安装新版本时会自动移除旧版本下载的 bundle。您还可以针对该 channel 关闭开发版 build 和模拟器的更新。
测试不带 Live Update 的 Native Build请在 App 加载完成后调用 notifyAppReady()。如果新 bundle 在 10 秒内未调用该方法,设备会将其标记为失败并回滚到上一个可用的 bundle。
notifyAppReady() 与自动回滚创建一个测试人员可以加入的 channel,添加开关,并在 14 天免费试用期间发送您的第一个 bundle。无需信用卡。
创建 Capgo beta 测试频道,并向已加入测试的用户推送 Live Update。
来自 Martin 的人工支持
14 天无限免费试用。无需信用卡 14 天退款保证。随时取消。