你问了个好问题。
我不是在给法律建议,我是在分享团队在安全地推送Capacitor应用程序时广泛使用的实用做法。
关键区别在于:
- 原生提交 仍然需要为新本机行为和主要功能而使用。
- 实时更新 用于JavaScript/Web修复和调整,仅限于您的现有应用范围内。
这两个平台都可以使用此模型,但您必须将其视为 安全政策流程而不是漏洞。
苹果和谷歌允许的简单术语
您可以将苹果和谷歌视为共享的界限:
- 您可以将code解释为嵌入式Web层(HTML/CSS/JS)而不需要重新提交。
- 您不应使用该通道进行重大功能添加,改变应用目的。
- 您不应仅通过JS来更改关键安全或分发控制。
苹果的官方指南是WebKit/JavaScript更新的核心。这一模型的原则同样适用于谷歌:在本机发布中保留本机更改。
什么是Capgo?
Capgo适用于:
- 修复web bug
- 安全的UI复制/样式/流程修复
- 在现有页面中进行逻辑修正
- 内部QA快速实验
Capgo不适用于:
- 添加权限或新本机功能
- 通过审核的核心功能
- 更改签名、加密或包标识行为
推荐发布策略
思考两个轨道:
Track 1: 原生 Track (App Store 审核)
使用您的正常 Capacitor 发布流程:
- 新插件更新
- 应用壳或清单更改
- 权限更新
- 平台特定功能更改
这些需要:
bun run build
bunx cap sync
# then App Store / Google Play submission flow
Track 2: JS Track (Capgo)
对于安全的小型运行时更改:
bun run build
bunx @capgo/cli deploy --channel staging
bunx @capgo/cli deploy --channel production
这给您快速迭代而无需上传新二进制文件的能力,同时保持二进制文件稳定。
如何避免“oops,这需要原生发布”
在每次 Capgo 发布之前,运行此快速门控:
- 是否需要添加新的本机依赖项或权限?
- 是否改变了应用的宣传功能?
- 是否改变了认证/安全边界?
- 是否可以描述为一个不影响 JavaScript 的修复?
如果 (1)-(3) 的答案是肯定的,请提交本机发布。 如果只对 (4) 的答案是肯定的,请通过 Capgo 发送。
这对合规团队意味着什么
- 您保留了应用审查带宽用于有意义的更改。
- 您保留了回滚控制和快速修复。
- 您通过在渠道中测试更新来减少生产风险。
这与生产中使用的大型 Capacitor 程序相同:仅对 JavaScript 修复进行快速更新,仅对真实二进制文件进行本机审查。
如果您想深入了解,请将此策略与基于渠道的严格环境策略配对,以便 QA never 接收生产错误。这种是 Capgo-native 的方法来保持 staging、beta 和生产环境的清洁。
继续阅读:如何在不重复应用商店审查的情况下更新 Capacitor 的 JavaScript 应用
如果您正在使用 如何更新Capacitor JS 应用程序而无需重复 App Store 审核 为了计划 App Store 审批和分发,连接它与 @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-in-app-review, @capgo/capacitor-native-market @capgo/capacitor-native-market 的实现细节在 @capgo/capacitor-native-market, 使用 @capgo/capacitor-native-market @capgo/capacitor-native-market 的本机能力在使用 @capgo/capacitor-native-market, 和 Capacitor OTA 更新:App Store 审批指南 为 Capacitor OTA 更新的实用上下文:App Store 审核指南。