交付中的团队 Capacitor Live Updates 在 Apple 审核邮件提及后仍反复问同一个问题 远程执行 code:这会阻止 Capgo 吗?
对大多数 Capacitor 应用来说,不会。 Capgo 替换的是应用当前运行的 web bundle。它不会下载 Swift、frameworks 或字节码,也不会把你的产品变成迷你应用商店。Apple 引用的规则确实存在,但它们针对的是另一类行为,与已签名 JavaScript 交付到 WebView WKWebView 或 JavaScriptCore 的情况不同。
本文仅为工程指导,而非法律建议。请阅读 Apple 公布的原文,并就你的应用咨询法律顾问。
审核人员引用的三段文本:
App 审核指南 2.5.2
指南 2.5.2 规定应用不得“下载、安装或执行 code,从而引入或改变应用(包括其他应用)的功能或特性”。
审核团队在看到以下情况时会引用该条款:
dlopen,dlsym,或类似的动态加载,performSelector:以及针对私有 API 的其他运行时钩子,或- 用于在审核通过后改变原生行为的远程脚本。
这就是 远程执行 code 这是拒信中的常见模式。它并不是禁止安装后下载的每一个字节。
ADPLA 第 3.3.1(B) 节(按 code 解读)
本指南中介绍的 Apple Developer Program 许可协议 章节 3.3.1(B) 允许 解释型 code 在满足以下条件时下载:
- 不会改变 App 的核心用途,
- 不会绕过签名、沙盒或其他 OS 安全特性,且
- 不会为其他应用创建商店或店面。
Capacitor 的 Web 层按设计由 code 解释执行。 Capgo 在用户从 App Store 安装审核过的二进制文件后,替换该层。
ADPLA 第 3.3.1(C) 条(附加功能)
章节 3.3.1(C) 又增加了一道限制:除非获得 Apple 事先书面批准,或属于允许的 3.3.9(A) 应用内购买(In-App Purchase)用途,否则 App 不得通过 App Store、Custom App Distribution 或 TestFlight 以外的分发机制提供、解锁或启用额外功能或特性。
特定的 OTA bundle 是否越界,需要由您的团队做出法律判断。Capgo 不会替您做决定。这份 合规检查清单 列出了 3.3.1(C),方便您评估每次发布。
Guideline 4.7 以及 2025 年 11 月的澄清说明
Apple 2025 年 11 月 13 日的指南更新 明确了 指南 4.7 适用于提供 HTML5 和 JavaScript 的应用 小程序、mini games、聊天机器人、插件及类似软件 且未嵌入二进制文件.
如果用户在您的应用内浏览或启动许多不同的软件体验,您可能需要遵循 4.7 的目录、索引和年龄分级机制。bundle 的所有权并不能决定这个问题。这份 你交付的体验 。
Capgo 是用于向 你的 渠道交付 bundle 的 你的 渠道。它本身并不是 4.7 市场。如果你的产品是白标宿主或小程序平台,在依赖 OTA 之前请认真对待 4.7。
Capgo 实际交付的内容
| 层级 | Capgo 的行为 |
|---|---|
| 原生二进制 | 保持不变。新的 plugin、权限和 entitlement 需要走 store build。 |
| Web 资源 | 经过签名的 JavaScript、HTML、CSS、字体、图像和静态文件将替换应用内的 bundle。 |
| 执行 | 在 Apple 已随你的壳应用批准的 WebView 或 JavaScriptCore 引擎中运行。 |
| 加密 | 可选的端到端加密可确保 Capgo 在传输和存储期间无法读取 bundle 内容。 |
Capgo 帮助你在几分钟内发布 Web 层修复,在特定 channel 上回滚有问题的 bundle,并让原生版本继续走 App Store 发布流程。数千款生产应用采用这种拆分方式,而不会将 live update 变成远程原生加载器。
给团队的实用规则
- 对于 Apple 已审核产品内的 bug、UI、文案和改进,请使用 OTA。
- 当原生 code、SDK、权限或 entitlements 发生变化时,提交新的二进制文件。
- 不要使用 live update 来更改定价模式、解锁隐藏功能或改变应用用途。
- 如果被要求,请在 App Review 备注中说明更新机制。
- 阅读完整 Apple 远程 code 与 Capgo 部分,在您下次发布之前。
如果您需要产品视图(渠道、回滚、签名),请从 Capacitor Live Updates开始。如果您需要深入的政策分析,请使用上方的合规文档或 Apple 允许 Live Update 吗?.