StudySmarter - 学习与校园
教育应用程序,需要利益相关者审查的课程、课程和订阅变更。
- Google Play 安装
- 6.5万
- 商店评分
- 4.8
问题
开发者打开PR
更改已准备就绪,但尚未在手机上进行测试。
构建、签名和上传
某人为分支构建一个原生二进制文件,签名它,上传到TestFlight或Play测试跟踪中,并等待处理。
邀请和安装
审查者需要添加为测试者并安装该exact构建。
重复每个修复
每个审查评论都改变code意味着另一个构建,另一个上传,另一个安装。
每轮审查都等待原生构建,即使只有JavaScript发生变化。
每个构建
等待商店处理
每次你上传到测试飞行或Play测试轨道的构建都会被处理,测试者才能安装它。这会发生在每个构建上。
每个PR
需要自己的原生构建来测试
没有实时更新,审阅者只能在有人构建、签名并上传新的二进制文件后尝试一个 branch,甚至是web-only的更改。
延迟反馈
审阅发生在作者已经转移任务后
当审阅等待构建时,反馈会晚到,作者正在处理另一个任务,branch会从main分支漂移。
它是如何工作的
四个CI步骤:设置一次scoped密钥,按推送上传,分享预览,关闭时清除。以下每个命令都来自Capgo文档。
管理员为CI创建了一个App预览API密钥。它可以创建预览频道和上传捆绑包,但无法更改默认或生产频道。预览在每个应用程序中只打开一次。
# once, run by an admin (not the preview key)
npx @capgo/cli@latest app set com.example.app --preview
App预览API密钥
每次推送时,CI会构建Web应用并以唯一的捆绑包版本上传。bundle upload --channel创建了pr-<number>频道,如果不存在,则将捆绑包链接到它。
npx @capgo/cli@latest bundle upload com.example.app \
--apikey "$CAPGO_PREVIEW_KEY" \
--path ./dist \
--channel "pr-$PR_NUMBER" \
--bundle "1.2.3-pr.$PR_NUMBER.$GITHUB_RUN_NUMBER"
PR预览在频道文档中
get-qr打印了频道的QRcode,或使用--url参数打印预览URL,以便CI可以将它们添加到PR评论中。
npx @capgo/cli@latest get-qr com.example.app \
--channel "pr-$PR_NUMBER" \
--apikey "$CAPGO_PREVIEW_KEY" \
--url
get-qr参考
在pull请求关闭事件中运行此命令。使用App预览密钥,它只会删除创建的频道和链接的捆绑包。
npx @capgo/cli@latest channel delete \
"pr-$PR_NUMBER" com.example.app \
--apikey "$CAPGO_PREVIEW_KEY" \
--delete-bundle \
--success-if-not-found
频道CLI参考
两者都需要一个允许自我分配的频道。 App Preview密钥不会设置此项,因此使用该密钥时,请共享二维码预览或在控制台中设置设备覆盖
在内部构建中打开摇动菜单。测试人员摇动设备以打开Capgo的测试菜单,摇动频道选择器让他们选择频道。
// capacitor.config.ts (internal builds)
CapacitorUpdater: {
shakeMenu: true,
}
在开发者设置屏幕上添加一个频道字段,并使用PR频道名称调用setChannel()。
import { CapacitorUpdater } from '@capgo/capacitor-updater'
await CapacitorUpdater.setChannel({
channel: 'pr-123',
triggerAutoUpdate: true,
})
setChannel()参考
任何查看pull请求的人都可以在手机上查看它,不仅仅是作者。
找到匹配团队需求的解决方案
使用Capacitor构建的应用
学习、活动和社区应用可以在同一时间进行审阅的登录、练习、直播和订阅更改。PR预览允许产品、QA和支持人员在合并之前检查一个已准备的移动构建。
教育应用程序,需要利益相关者审查的课程、课程和订阅变更。
在合并之前,应测试事件流程的实时参与应用程序。
社区应用,比赛和分析屏幕都能从设备预览中受益。
CTO, 私有
“设置只需一天。基于频道的发布让我在自己的设备上测试之前任何内容都不会发布到生产用户身上。”
nethead emeritors
“更新插件使用得很好。它对我来说运行得非常顺畅,实时更新大大提高了快速测试的效率。”
开发者, Webincode
“能够将设备 ID 添加到某些组并将更改推送到仅限某些组的设备是救命的.”
常见问题
为设置 CI 和审查的人提供直率的答案
不需要,如果 PR 只改变了 web 层。审查者只需安装一次应用程序,每个 PR 的 JavaScript、HTML、CSS 和资产都可以在自己的频道中。 如果 PR 添加了一个插件或改变了原生 code, 需要一个原生构建。 在 CI 中运行构建以检测此类情况。
什么需要原生构建不使用 App 预览 API 键。它可以创建预览频道、上传捆绑包并删除它创建的频道和捆绑包。它不能更改默认或主频道。在 GitHub 动作中,运行在 pull_request 上的作业,而不是 pull_request_target,并将其限制为来自同一存储库的 PR。
App 预览 API 键管理员使用 app set --preview 一次启用预览。然后,get-qr 打印 PR 频道的 QR code,并 --url 打印 Web 预览 URL 和深度链接。将它们发布在 PR 评论中。
get-qr 参考在 pull_request_closed 事件上添加一个作业,运行 channel delete,使用 --delete-bundle 和 --success-if-not-found。使用 App 预览键,会删除频道和与其关联的捆绑包。使用 bundle cleanup,使用具有删除权限的键,可以删除早期推送的捆绑包。
频道 CLI 参考是。步骤是 Capgo CLI 命令,因此它们在任何 CI 中都可以运行。文档中有 GitHub Actions、GitLab CI、Bitbucket Pipelines 和 Azure DevOps 的集成指南。
CI/CD 集成