想更新你的 Capacitor app 立即更新而不受 app 商店延迟的影响? Over-the-Air (OTA) 更新允许您将更改推送到应用程序的 web 层 (HTML、CSS、JavaScript) 而无需重新提交到 app 商店。但是,iOS 和 Android 处理这些更新的方式不同,了解这些差异至关重要。
关键点:
-
iOS: 更新会立即部署,但必须遵守严格的规则,包括文件路径限制和电源/网络需求。
-
Android: 使用阶段性发布(1% → 100%)并具有灵活的电源/网络需求,支持后台更新。
-
安全性:两者都强制实施强大的安全措施 - iOS 依赖于硬件加密,而 Android 使用 Verified Boot 和 SELinux。 __CAPGO_KEEP_0__.
-
Capgodelivering over __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
全球范围内共有947.6亿次更新
| 使用高效、安全和符合规范的部署工具 | 快速比较 | 功能 |
|---|---|---|
| iOS | Android | 更新部署 |
| 即刻全量发布 | 分阶段发布(1% → 100%) | 后台更新 |
| 存储 | 需要完整下载 | 支持流式更新 |
| 安全 | 硬件加密 | 验证引导,SELinux |
| 电源要求 | 50%电池或已连接 | 灵活 |
| 网络 | 需要Wi-Fi | 支持多种连接 |
Capgo 大大简化了流程,确保在两种平台上更新都是安全、效率高且符合规范。无论您是针对 iOS 还是 Android,了解这些差异将有助于您创建更好的 OTA 更新策略。 更新策略.
iOS 和 Android 如何处理 OTA 更新
iOS 和 Android 在 OTA 更新管理方面采取了不同的方法,两者在技术执行和审批流程上都有所不同。
App Store OTA 更新规则
苹果对 OTA 更新有严格的规定。设备必须满足以下技术条件:必须运行 iOS 5 或更高版本,连接稳定的 Wi-Fi 网络,并且要么有至少 50% 的电池寿命,要么连接到电源。 [5]苹果还实施了严格的审批流程,评估更新的安全性、性能、商业合规性、设计和法律标准。 [4].
Google Play Store OTA 更新规则
Google Play 与苹果不同,采用了分阶段发布系统。更新首先在 1% 的用户中发布 24-48 小时,然后逐渐扩大,通常每次增加 25%,直到在一到两周内完成部署。 [7]自 2023 年 8 月起,所有新版 Android 必须针对最高可用的 API 版本。 [3]此外,Android 还采用了流式更新,这有助于减少更新过程中额外存储空间的需求。 __CAPGO_KEEP_0__ helps streamline the process, ensuring updates are secure, efficient, and compliant across both platforms. Whether you’re targeting iOS or Android, understanding these differences will help you create a better OTA update strategy. [8].
平台更新差异
以下是iOS和AndroidOTA更新的关键区别:
| 功能 | iOS | Android |
|---|---|---|
| 更新部署 | 即刻全量发布 | 分阶段发布(1% → 25% → 50% → 100%) |
| 后台更新 | 有限 | 支持在后台进行A/B更新 [8] |
| 存储管理 | 需要完整下载 | 支持流式更新 [8] |
| 电源要求 | 至少50%的电池或已连接 [5] | 灵活的电源要求 |
| 网络要求 | 需要Wi-Fi连接 [5] | 支持多种连接类型 |
Android的A/B更新系统独特之处在于允许在后台安装更新而不中断用户。这一系统使用两个槽位来为启动关键分区,避免了需要冗余分区并优化了与旧方法相比的存储 [6]另一方面,iOS遵循更为控制和即时的更新流程,优先考虑稳定性和用户监督
用户组和更新分发
当它来到更新分发时,策略需要考虑各种设备和操作系统的独特约束
设备更新规则
更新要求主要取决于硬件和平台。例如,iOS 设备在用户触发更新时需要至少 20% 的电池电量,而在自动更新时需要 30% 的电池电量。 自动更新.在 Mac 上,要求根据芯片类型有所不同 - 20% 的电池电量用于 Apple 硬件设备,而 50% 的电池电量用于基于英特尔的设备 [10].安卓设备则有更灵活的系统,但面临着由于生态系统碎片化而产生的挑战。制造商和运营商会引入延迟,安全更新平均需要 24 天,设备特定完成还需要额外的 11 天 [11].
操作系统版本要求
操作系统要求在更新分发中起着关键作用。对于安卓应用,Google Play 强制执行以下要求
| 时间框架 | 要求 |
|---|---|
| 2024 年 8 月 31 日之后 | 新应用必须针对安卓 14 (API 34+) |
| 当前 | 现有应用必须针对 Android 13 (API 33+) |
| 遗留系统 | 针对 Android 12 或更低版本的应用必须遵守现有的 OS 版本 |
对于 iOS,Apple 使用快速安全响应 (RSR) 直接将关键补丁传递给最新的 OS 版本 [10]. Capgo 确保与运行 iOS 13.0+ 和 Android API 等级 22+ 的设备兼容 [9].
更新策略结果
Android 的 Project Treble 已减少安全更新所需的时间约 7 天 [11]. 为有效管理更新,建议分离开发和生产 更新通道 [9]. Capgo 简化了过程,使用百分比部署,允许控制发布,同时遵守应用商店指南
该更新器还会在平台特定的目录中缓存下载的包,以实现高效和安全的更新:
-
安卓:
/data/user/0/com.example.app/code_cache/capgo_updater -
iOS:
Library/Application Support/capgo
本缓存系统确保更新流畅可靠 [9].
快速更新和提高效率
在 iOS 和 Android 设备上,OTA(无线更新)更新的速度和效率对用户体验有着至关重要的影响。影响这一点的两个关键因素是网络条件和文件大小的管理。
文件大小和网络管理
Keeping file sizes optimized is crucial for smooth OTA updates. For instance, Capgo’s updater runs update checks in a background thread during app startup, ensuring the user interface stays responsive [9]. 它还支持 JavaScript 更新,同时锁定本机 code(如 Java/Kotlin 或 Objective-C/Swift)以保持稳定性 [9].
更新速度对比
即使文件大小较小,更新速度仍然是一个关键因素。iOS在此方面通常有优势,因为它的硬件和软件紧密集成,可以更快地处理更新。 [14]在另一方面,Android的广泛硬件选择有时会导致更新性能不均衡 [13][14].
“通过Appflow,Ionic的移动CI/CD平台,可以立即为用户部署实时更新,这是最关键的好处之一。”
– Cecelia Martinez, Developer Advocate [12]
为了提高更新效率,像差异更新和利用原生功能等策略至关重要。例如,Capacitor 将某些操作转移到原生层。当与差异更新结合使用时,这种方法可以显著减少更新时间和数据使用量。 [12]考虑到Android在全球市场的占比超过70%,截至2023年3月 [13] – 维持其各种设备上的性能一致性尤其重要
sbb-itb-f9944d2
安全规则和要求
在OTA更新中,iOS和Android采用不同的方法来确保数据保护和系统安全,各自使用其特有的协议
iOS安全标准
苹果的更新过程是严格控制的,并且以严格的安全性为设计。iOS设备依赖于 硬件加密,使用每台设备独有的两个内置AES 256位密钥 [17]每台设备也包含一个独特的基于硬件的UID,内置了256位AES密钥 [17]更新被验证为完整性,针对个人设备定制,并带有防止降级攻击的安全措施。苹果还在更新期间隔离用户数据以防止安全风险 [10]苹果的 快速安全响应允许快速部署安全补丁而无需进行全系统更新 [10].
安卓安全标准
安卓安全基于Linux的基础,注重用户隔离和系统级保护。每个应用程序都被分配一个独特的UID,而 SELinux 强制访问控制 确保了 feature ensures code authenticity [18]的真实性。对于OTA更新,安卓使用一个 虚拟 A/B 分区系统 (对 Android 11 及更高版本设备进行压缩)以及用于加密任务的硬件背后的 Keystore,以及通过 OEM 和运营商分发的更新 [15].
| 功能 | iOS | 安卓 |
|---|---|---|
| 更新分发 | 通过 Apple 集中 | 通过 OEM/运营商分发 |
| 安全验证 | 硬件加密 | SELinux + Verified Boot |
| 补丁分发 | 快速安全响应 | Project Mainline模块 |
| 更新认证 | 设备特定UID | 验证引导 |
安全要求比较
这些框架的不同之处突出了每个平台的架构如何影响其安全方法。 iOS在“围栏园”模型中运作,提供紧密的控制和标准化的安全措施。相比之下,Android的开放生态系统提供了更大的灵活性在更新机制,但有时会面临碎片化挑战 [15]这些安全结构直接影响OTA更新的可靠性。
对于使用工具如Capgo的开发者,了解这些区别至关重要。 iOS强制执行更严格的应用隔离和限制系统API访问 [17],而Android的更广泛的进程间通信选项要求小心的安全管理 [18]。截至2025年2月,iOS 18.3.1和各种Android版本的使用 [16],开发者必须确保他们的OTA更新策略与每个平台的最新安全标准相一致
Capgo 平台概览

Capgo 将各个平台的实时更新规则整合到一个高效的更新平台中。
通过与 iOS 和 Android 安全协议的合作,Capgo 确保实时更新管理的顺畅性。截至目前,它已经成功推送了 9.476亿次更新 覆盖 1,400个生产应用 [1].
Capgo 的关键功能
Capgo 致力于解决更新挑战,提供安全、高效和符合规范的交付。更新将使用 端到端加密,并且解密仅在用户设备上进行 [1]iOS使用自定义的Dart解释器来符合苹果的解释器更新规则。 [9]在Android上,它支持API级别22及以上,符合Capacitor的要求。 [9].
| 功能 | 实现 | 平台支持 |
|---|---|---|
| 更新传递 | 即刻部署 | iOS 13.0+,AndroidAPI 22+ |
| 安全 | 上下文:企业产品/定价页面。角色:UI标签。位置:企业产品页面。 | 端到端加密 |
| 上下文:Capgo营销网站。角色:短UI标签或导航项。位置:Capgo产品页面。Message key `end_to_end_encryption` (端到端加密)。 | 与 Azure DevOps、GitHub、GitLab 一起工作 | 跨平台 |
| 存储管理 | 仅编译 code | 平台特定的缓存 |
| 版本控制 | 回滚功能 | 两种平台 |
跨平台更新管理
Capgo 的频道系统为开发者提供了对 iOS 和 Android 更新的精确控制。这一系统允许:
该平台的现实影响很明显。例如,NASA的 OSIRIS-REx 团队分享:
“@Capgo 是一种聪明的方式来进行热code推送(而不是像@AppFlow那样花所有的钱 :-)” [1]
Capgo 可以调整任何 JavaScriptcode,包括应用程序和生成的code,但它严格避免修改本机code(例如 Android 的 Java/Kotlin 或 iOS 的 Objective-C/Swift) [9].
结论
OTA更新 Capacitor 应用 由于平台特定的规则,iOS 和 Android 需要不同的方法。对于 iOS,存在更严格的控制,例如文件路径限制,限制服务器路径到“/Library/NoCloud/ionic_built_snapshots” [2]与此同时,Android允许更多的自由度,虚拟机和解释器访问API的限制较少 [2]这些差异突出了创建与每个平台框架相匹配的更新策略的重要性
来自Capgo的数据表明了这些策略的有效性。开发者成功地在1400个生产应用中交付了9.476亿次更新,证明了设计良好的更新系统的可扩展性 [1]然而,成功依赖于满足每个平台的要求,同时保持强大的安全措施
例如,苹果要求解释器code不能改变应用的核心功能或损害其安全 [2]这条规则是开发者必须遵循的平台特定指南的明确提醒,才能有效地实施OTA更新
继续阅读Capacitor OTA Updates: Targeting iOS vs Android
如果您正在使用__CAPGO_KEEP_0__ OTA Updates: Targeting iOS vs Android Capacitor OTA Updates: Targeting iOS vs Android 加密 加密 加密 合规性 为合规性中的实现细节 Capgo 安全扫描器 为Capgo 安全扫描器中的产品工作流 Capgo 安全 为Capgo 安全中的产品工作流 Capgo 信任中心 为Capgo 信任中心中的产品工作流