很高兴你问了。
我不是在提供法律建议,我是在分享团队在安全地发布Capacitor应用时广泛使用的实践。
重要的区别是这个:
- 原生提交 仍然需要为新原生行为和主要功能。
- 实时更新 是指在您的现有应用范围内进行JavaScript/web修复和调整。
两者都可以使用iOS和Android,但您必须将其视为 政策安全的工作流程,而不是一个漏洞。
苹果和谷歌允许的简化版
您可以将苹果和谷歌视为共享一个类似的界限:
- 您可以在嵌入式Web层(HTML/CSS/JS)中交付code而无需重新提交。
- 您不应使用该渠道进行重大功能添加,改变应用目的。
- 您不应仅通过JS来改变关键安全或分发控制。
苹果的官方指南是围绕WebKit/JavaScript更新的核心,这个模型的核心是苹果的官方指南。谷歌通常对基于Web的更新更具限制性,但同样的原则适用:在原生发布中保留本机更改。
什么是Capgo
Capgo适用于:
- 修复Web Bug
- 安全的UI复制/样式/流程修复
- 存在页面的逻辑修正
- 内部QA的快速实验
Capgo 不是用于:
- 添加权限或新本机功能
- 通过审核的核心功能
- 更改签名、加密或包标识符行为
推荐发布策略
思考两个轨道:
轨道 1: 本机轨道 (商店审核)
Capacitor 的正常发布流程用于:
- 新插件更新
- 应用程序 shell 或清单更改
- 权限更新
- 平台特定功能更改
这些需要:
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,这需要一个本机发布”
Before every Capgo rollout, run this quick gate:
- 是否更改需要新本机依赖项或权限?
- 是否更改了应用程序的宣传能力?
- 是否改变了身份验证/安全边界?
- 是否可以将其描述为非破坏性 JavaScript 修复?
If the answer is yes to (1)-(3), submit a native release. If yes only to (4), send through Capgo.
这对合规团队意味着什么
- 您保留应用程序审查带宽用于有意义的更改。
- 您保留回滚控制和快速修补。
- 您通过在渠道中测试更新来减少生产风险,避免全面部署。
这与大型Capacitor生产程序使用的相同方法:仅用于JS修复的快速更新,仅用于真实二进制文件的native审查。
如果您想深入了解,请将此与基于渠道的严格环境策略配对,以便QA从未接收到生产错误。这种是Capgo-native的方法,用于保持staging、beta和生产环境清洁。
继续阅读如何在不重复应用商店审查的情况下更新Capacitor JS应用程序。
如果您正在使用 如何在不重复应用商店审查的情况下更新Capacitor JS应用程序 来规划应用程序审查和分发,请将其连接到 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 Updates: App Store Approval Guide 为了在 Capacitor OTA Updates: App Store Approval Guide 中的实际背景