很高兴你问了。
我不是提供法律建议,我在分享实际上和广泛使用的跨团队安全地发布Capacitor应用的做法。
重要的区别是:
- 原生提交 仍然需要为新原生行为和主要功能性而进行
- Live updates 实时更新
是针对JavaScript/web修复和调整的,仅限于您的现有应用范围内。 两者都可以使用此模型,但您必须将其视为政策安全的工作流程
,而不是一个漏洞。
简而言之,苹果和谷歌允许的内容是:
- 您可以通过嵌入式Web层(HTML/CSS/JS)交付不需要重新提交的code。
- 您不应使用该渠道进行重大功能添加,改变应用目的。
- 您不应通过JS单独改变关键安全或分发控制。
Apple的官方指南是WebKit/JavaScript更新的核心,这个模型。Google通常对基于Web的更新更具限制性,但同样的原则适用:在本机发布中保留本机更改。
什么Capgo适合
Capgo适用于:
- 修复Web Bug
- 安全的UI复制/样式/流程修复
- 在现有页面中进行小的逻辑修正
- 内部QA的快速实验
Capgo不适用于:
- 添加权限或新本机功能
- shipping new core capabilities that should go through review,
- 改变签名、加密或包身份行为。
推荐发布策略
思考两个轨道:
轨道 1:本机轨道(商店审查)
使用您的正常 Capacitor 发布过程:
- 新插件更新,
- 应用程序 shell 或清单更改,
- 权限更新,
- 平台特定功能更改。
这些需要:
bun run build
bunx cap sync
# then App Store / Google Play submission flow
轨道 2:JS 轨道(Capgo)
对于安全、轻量级的运行时更改:
bun run build
bunx @capgo/cli deploy --channel staging
bunx @capgo/cli deploy --channel production
这让你能够快速迭代而无需上传新的二进制文件,同时保持二进制文件的稳定性。
如何避免“oops,这需要一个原生发布”
在每次Capgo发布之前,运行这个快速门控:
- 是否需要添加新的原生依赖或权限?
- 是否会改变应用的宣传功能?
- 是否会改变身份验证/安全边界?
- 我们能不能把它描述成一个不破坏的 JavaScript 修复?
如果答案是对 (1)-(3) 的是,提交本地发布。 如果只对 (4) 是,通过 Capgo 发送。
对合规团队来说,这意味着
- 您保留应用程序审查带宽用于有意义的更改。
- 您保留回滚控制和快速修补。
- 通过测试更新在渠道中降低生产风险,避免一次性发布.
这是大型Capacitor项目在生产环境中使用的相同方法:仅对JS修复进行快速更新,仅对真实二进制文件进行原生审查.
如果您想深入了解,结合基于渠道的严格环境策略,确保QA从未接收到生产错误。 这是Capgo-原生方式,保持开发、测试和生产环境清洁.
Keep going from How to update Capacitor JS apps without repeat store review
如果您正在使用 How to update Capacitor JS apps without repeat store review 来规划商店审查和分发,连接它与 @capgo/capacitor-in-app-review 了解@capgo/capacitor-in-app-review的实现细节在@capgo/capacitor-in-app-review, 使用@capgo/capacitor-in-app-review 原生能力在使用@capgo/capacitor-in-app-review, @capgo/capacitor-native-market 为 @capgo/capacitor-native-market 的实现细节 使用 @capgo/capacitor-native-market 为 @capgo/capacitor-native-market 的本机能力 Capacitor OTA 更新:App Store 审核指南 为 Capacitor OTA 更新:App Store 审核指南 的实际背景