很高兴你问了。
我并不是提供法律建议。我分享的是团队在安全地发布Capacitor应用时实际使用的和广泛使用的做法。
重要的区别是:
- 原生提交 仍然需要为新原生行为和主要功能提交。
- 实时更新 仅用于JavaScript/web修复和调整,且仅限于现有应用范围内。
两者都可以使用此模型,但您必须将其视为 政策安全的工作流程,而不是一个漏洞。
苹果和谷歌允许的简单术语
您可以将苹果和谷歌视为共享一个类似的边界:
- You can deliver code through the embedded web layer (HTML/CSS/JS) without resubmitting.
- 您不应使用该渠道进行重大功能添加,改变应用目的。
- 您不应通过 JavaScript alone 改变关键安全或分发控制。
Apple 的官方指南围绕 WebKit/JavaScript 更新是此模型的核心。Google 通常对基于 Web 的更新更具限制性,但同样的原则适用:在本机发布中保留本机更改。
什么 Capgo 是好的
Capgo 适用于:
- 修复 web 错误
- 安全 UI 复制 / 样式 / 流程修复
- 现有页面中的 minor 逻辑修正
- 内部 QA 的快速实验
Capgo 不适用于:
- 添加权限或新本机功能
- 运输新的核心功能,需要经过审查
- 更改签名、加密或包标识行为
推荐发布策略
思考两个轨道:
轨道 1:本机轨道(商店审查)
使用您的正常 Capacitor 发布过程:
- 新插件更新
- 应用程序 shell 或清单更改
- 权限更新
- 平台特定功能更改
这些需要:
bun run build
bunx cap sync
# then App Store / Google Play submission flow
轨道 2:JS 轨道(Capgo)
For safe, small runtime changes:
bun run build
bunx @capgo/cli deploy --channel staging
bunx @capgo/cli deploy --channel production
这让您能够快速迭代,而无需上传新的二进制文件,同时保持二进制文件的稳定性。
避免“oops,这需要一个本机发布”
在每次Capgo发布之前,运行此快速门控:
- 是否需要新本机依赖项或权限?
- 是否改变了应用程序宣传的能力?
- 是否改变了身份验证/安全边界?
- 是否可以将其描述为非破坏性JavaScript修复?
如果答案是(1)-(3)中的yes,则提交本机发布。 如果只回答是(4),则通过Capgo。
这对合规团队意味着什么
- 您保留了应用程序审查带宽用于有意义的更改。
- 您保留了回滚控制和快速修补。
- 在测试更新在所有频道中发布之前,可以减少生产风险。
在生产环境中,人们使用的方法与大型Capacitor项目相同:仅对JS修复进行快速更新,对真实二进制文件只进行原生代码审查。
如果您想进一步深化,建议将此与基于通道的严格环境策略配对,以确保QA团队永远不会接收到生产错误。这样做是保持Capgo环境(包括测试、beta和生产环境)干净的本地方式。
继续从如何更新CapacitorJS应用程序而无需重复存储审查
如果您正在使用Capgo 如何更新CapacitorJS应用程序而不重复提交商店审核 为了计划商店的认证和分发,连接它 @capgo/capacitor-在应用内评论 在 @capgo/capacitor-in-app-review 中的实现细节 使用@capgo/capacitor内评 为使用本地能力的@capgo/capacitor-in-app-review。 @capgo/capacitor-原生市场 For @capgo/capacitor-native-market 的实现细节 使用 @capgo/capacitor-native-market 用于 @capgo/capacitor-native-market 的本地能力 @Capacitor OTA 更新:App Store 审批指南 对于 @Capacitor OTA 更新:App Store 审批指南 的实际背景