很高兴你问了。
我并不是提供法律建议,我只是分享了在团队中安全地发布Capacitor应用程序时实际和广泛使用的方法。
重要的区别是这个:
- 原生提交 仍然需要为新原生行为和主要功能。
- 实时更新 是指在您的现有应用程序范围内进行的JavaScript/web修复和调整。
两者都可以使用此模型,但您必须将其视为 政策安全的工作流程而不是一个漏洞。
苹果和谷歌允许的简单术语
您可以将苹果和谷歌视为共享一个类似的边界:
- 您可以在嵌入式 Web 层 (HTML/CSS/JS) 中交付 code 而无需重新提交。
- 您不应使用该渠道进行重大功能添加,改变应用目的。
- 您不应仅通过 JS 来修改关键安全或分发控制。
苹果官方关于 WebKit/JavaScript 更新的指南是本模型的核心。Google 通常对基于 Web 的更新更具限制性,但同样的原则适用:在本机发布中保留本机更改。
什么是 Capgo 好的
Capgo 是用于:
- 修复 Web 错误
- 安全 UI 复制 / 样式 / 流程修复
- 存在页面中的逻辑修正
- 内部 QA 的快速实验
Capgo 不是用于:
- 添加权限或新本机功能
- 运送新的核心功能,应该经过审查
- 改变签名、加密或包身份行为
推荐发布策略
思考两个轨道
轨道 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本机的方式来保持测试、beta和生产环境的清洁。
继续阅读关于如何在不重复App Store审查的情况下更新Capacitor JS应用的文章。
如果您正在使用 关于如何在不重复App Store审查的情况下更新Capacitor JS应用的文章 来规划App Store审查和分发,连接它与 @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 审核指南 中获得实际上下文