跳过主要内容
开发 移动 更新

Capacitor OTA 更新:App Store 审批指南

了解如何在Capacitor应用中导航App Store和Play Store OTA更新指南,确保遵守和安全性。

马丁·多纳迪厄

马丁·多纳迪厄

内容营销人员

Capacitor OTA更新:App Store审批指南

关键要点:

  • 苹果App Store: OTA更新仅限于JavaScript和资产文件。无需修改本机code或核心功能。

  • Google Play Store: 更多灵活性,但仍需遵循安全性和防止滥用的政策。

  • 常见问题: 应用程序因修改本机code、添加未审查的功能或使用未加密的更新而被拒绝。

快速合规提示:

  • 只使用 JavaScript 和资产更新

  • 使用工具 Capgo 进行加密传递和回滚选项。

  • 遵循 语义版本 (SemVer) 来跟踪和审计更新。

  • 确保更新是安全的 code签名和HTTPS.

功能苹果应用商店Google Play 商店
JavaScript 更新允许 (仅限 JS/资产)允许但规则较少
核心变化不允许有限的灵活性
安全严格 (code 签名需要)防止滥用

App Store OTA 更新规则

苹果应用商店 规则

苹果应用商店

苹果的指南,特别是§3.3.2,严格限制了OTA更新的Capacitor应用。允许更新 仅限 JavaScript和资产。关键限制包括:

  • 不允许更改应用的核心功能或主要目的

  • 禁止创建替代应用商店或code分发平台

  • 不允许绕过iOS安全功能,如code签名

对于Capacitor开发者来说很重要: Any JavaScript updates must stay within the app’s original security container and cannot alter the app’s essential behavior.

Google Play 商店 规则

Google Play 商店

Google Play 对 OTA 更新采取更宽松的态度,但仍然强制遵守明确的边界,以防止滥用。他们的指南重点关注:

  • 允许 JavaScript 资产更新的限制较少

  • 确保更新符合设备和网络滥用政策

  • 禁止引入恶意 code 或安全风险

  • 要求更新与 Play Store 批准的应用版本保持一致

  • 防止绕过 Google Play 的付款系统 Capacitor 应用 [6]

功能App StoreGoogle Play 商店
JavaScript 更新仅限 JS/assets允许
核心功能变更不允许通过 OTA灵活性有限
安全要求严格的 code 签名和沙盒防止滥用
更新频率无具体限制受网络滥用政策约束

重大合规问题

常见的原因包括:

  • 未经审查添加的功能

  • 过多或侵入性的更新提示

  • 未加密的更新包

为了避免这些问题,遵循Capacitor特定实现指南至关重要。提供自动合规检查的工具可以大大简化此过程。例如,Capgo的端到端加密功能可以帮助确保更新包安全,满足应用商店的要求 [7].

OTA更新指南 Capacitor

Capacitor框架文档网站

技术合规步骤

为了避免合规问题,请遵循以下步骤:

  • 使用语义版本 (SemVer): 跟踪更新并保持详细的更改日志以保持合规 [8].

  • 仅限制 JavaScript 和资产更新: 避免修改本地 code 以确保合规 [1].

  • 验证包签名: 在安装之前始终验证签名 [2].

更新组件必需的行动合规影响
JavaScript 文件仅限 UI/逻辑更改保持商店合规
资产文件更新使用完整性检查确保安全交付
原生 Code不允许修改防止商店拒绝
版本控制使用 SemVer 追踪启用适当审计

更新界面设计

创建易于使用且不中断的更新界面:

  • 显示 清晰简洁的通知 不打断用户体验 [4].

  • 启用 后台下载 带有进度指示器

  • 允许用户决定何时安装更新,除非是关键安全补丁

强制更新应仅用于关键安全修复,并且必须清晰地传达紧急性 [3]这些步骤有助于减少因侵入性更新提示而导致的拒绝风险

安全更新协议

确保安全传递和数据完整性

  • 端到端加密 使用证书绑定、令牌认证和定期轮换密钥 [2].

  • 验证系统: 结合服务器端验证更新请求与客户端包完整性检查 [2].

  • 性能监控: 跟踪采用率、下载时间和更新后性能等关键指标 [11]. 包括自动错误报告以快速解决问题 [5].

这些安全措施与苹果的code签名要求和谷歌的反滥用政策相一致。工具如Capgo可以帮助实施这些协议 [9].

sbb-itb-f9944d2

Capgo 更新管理系统

Capgo实时更新控制台界面

Capgo提供了安全的方式来交付和管理 Capacitor OTA更新,确保在满足合规标准的同时实现平滑的分布。 企业级更新管理.

Capgo的更新系统包括以下功能:

Capgo的更新系统包括以下功能:

  • 加密更新传输:确保更新符合应用商店的安全要求。

  • 用户分段:允许对特定用户组进行控制的发布。

  • 即时回滚:如果需要,可以快速回滚到之前的版本。

此方法确保更新是无缝的,允许开发人员有效地监控性能。

《Capgo》工具集

Capgo工具集旨在满足安全性和合规性需求:

  • 发布管理: 开发者可以将更新发布到小型用户组中 - 从1%开始 - 以测试更广泛的发布前更改。

  • 自动保护: 内置健康检查确认更新的完整性之前安装。如果出现任何问题,系统将自动回滚到最后一个稳定版本,保持应用程序功能并避免应用商店拒绝 [1].

如何设置《Capgo》

按照以下三个简单步骤开始使用《Capgo》:

  1. 初始设置

    npm install -g @capgo/cli
    capgo init
  2. 插件集成

    npm install @capgo/capacitor-updater
  3. 配置

    更新 capacitor.config.json 在您的应用程序的主要逻辑中包含文件并包括必要的就绪检查 [9].

对于企业团队,Capgo 还支持基于角色的访问控制,确保更新授权符合严格的合规标准

App Store 拒绝预防

为了避免 app store 拒绝,必须解决最常见的触发器 35% 的结果来自本机 code 违规, 28% 来自功能范围问题,和 22% 来自更新过程错误 [1].

本机 Code 违规

本机 code 违规占 OTA 拒绝的 35% [1]. 要解决这个问题,请确保更新严格依赖于 JavaScript、HTML 和 CSS 通过使用自动文件检查工具。像__CAPGO_KEEP_0__的合规套件 Capgo签名和完整性检查 可以帮助实现code签名和完整性检查,降低拒绝率达80% [13].

功能范围问题

功能范围问题是另一个常见的障碍。使用以下框架来有效地管理更新:

更新类型通过概率实施策略
内容更新更新文本、图像和样式
UI细化简体中文逐渐应用界面变化
新功能使用功能标志和分阶段发布

例如,基于Capacitor的电子商务应用成功地通过分阶段发布新功能并保持合规性,减少了客户支持票据的60% [14].

更新过程错误

更新期间的技术错误可能导致拒绝。以下是如何避免它们的方法

  • 错误处理
    监控更新成功率并记录每次更新尝试和结果

  • 用户沟通
    在更新期间显示进度指示器,以便用户了解

提供清晰透明界面的应用程序已经看到 30% 的更高的留存率25% 的负面评论 与更新相关 [12].

[10]

预防应用商店拒绝的关键在于详细的文档和透明的与审查团队的沟通。提供了他们更新过程全面文档的应用程序,40% 的可能性更不容易面临与OTA更新相关的拒绝。”

Rolling out OTA updates for Capacitor apps involves a mix of technical precision and meeting compliance standards. To succeed, focus on essential areas that align with platform-specific guidelines and strategies:

为__CAPGO_KEEP_0__应用程序推出OTA更新涉及技术精确度和符合标准的混合。要成功,重点关注与平台特定指南和策略相一致的关键领域:优先行动
结果坚持使用 JavaScript-only 更新更快的审批
安全使用 自动加密/签名更少的漏洞

通过之前讨论的合规步骤,团队可以从自动检查中受益,简化适应应用商店规则的过程。像端到端加密和受控发布这样的功能可以帮助解决关键安全和合规问题。

由于苹果和谷歌不断更新政策(如第 2.1-2.3 节),预计将更加关注更新频率和更严格的安全标准。提前准备这些变化,同时保持 JavaScript 和资产更新功能完整。不要忘记记录和测试,以满足两家平台的指南和用户期望。

实时更新 Capacitor 应用

当 web 层面的 bug 活跃时,通过 Capgo 将修复推送到用户,而不是等待应用商店批准。用户在后台接收更新,而本机更改保持在正常的审查路径中。

立即开始

最新博客

Capgo为您提供创建真正专业移动应用所需的最佳见解。