想更新你的 Capacitor app 立即更新而不受 app store 延迟影响吗? Over-the-Air (OTA) 更新允许您将更改推送到应用程序的 web 层 (HTML、CSS、JavaScript) 而无需重新提交到应用商店。但是,iOS 和 Android 处理这些更新的方式不同,了解这些差异至关重要。
关键 takeaway:
-
iOS: 更新会立即部署,但必须遵守严格的规则,包括文件路径限制和电源/网络需求。
-
Android: 使用阶段性发布 (1% → 100%),具有灵活的电源/网络需求,并支持后台更新。
-
安全性: 两者都强制实施强大的安全措施 - iOS 依赖于硬件加密,而 Android 使用 Verified Boot 和 SELinux。.
-
Capgo: 一个简化 OTA 更新的平台,提供超过 __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
快速对比:
| 功能 | iOS | Android |
|---|---|---|
| 更新部署 | 即刻全量发布 | 分阶段发布(1% → 100%) |
| 后台更新 | 有限 | 支持A/B更新 |
| __CAPGO_KEEP_0__ | 需要完整下载 | 支持流式更新 |
| 安全 | 硬件加密 | 验证引导、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 还采用流式更新,这有助于减少更新过程中额外存储空间的需求 iOS 和 Android 在 OTA 更新管理方面的不同之处 [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% 的电池电量。 automatic updates. On Macs, the requirements differ based on the chipset - 20% battery for Apple silicon devices and 50% for Intel-based ones [10]. Android, on the other hand, has a more flexible system but faces challenges due to ecosystem fragmentation. Manufacturers and carriers introduce delays, with security updates taking an average of 24 days and an additional 11 days for device-specific completions [11].
OS Version Requirements
Operating system requirements play a key role in how updates are distributed. For Android apps, Google Play enforces the following:
| Timeframe | Requirement |
|---|---|
| After August 31, 2024 | New apps must target Android 14 (API 34+) |
| 操作系统要求在更新分发中起着关键作用。对于 Android 应用,Google Play 强制执行以下要求: | 现有应用必须针对 Android 13 (API 33+) |
| 遗留系统 | 针对 Android 12 或更低版本的应用必须遵守现有的操作系统版本 |
对于 iOS,苹果使用快速安全响应 (RSR) 将关键补丁直接传递到最新的操作系统版本 [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,内置了一个AES 256位密钥 [17]. 更新被验证为完整性,针对个人设备定制,并带有防止降级攻击的安全保障。苹果还在更新期间隔离用户数据以防止安全风险 [10]. 一个值得注意的功能是苹果的 快速安全响应,允许快速部署安全补丁而不需要进行全系统更新 [10].
安卓安全标准
安卓安全基于Linux的基础,注重用户隔离和系统级保护。每个应用程序都被赋予一个独特的UID,而 SELinux 强制访问控制 确保了 feature ensures code authenticity [18]功能的完整性。对于OTA更新,安卓使用 __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ (Android 11 及以上设备支持压缩) [15].
| __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ | __CAPGO_KEEP_2__ |
|---|---|---|
| __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ | __CAPGO_KEEP_5__ |
| __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ | __CAPGO_KEEP_8__ |
| __CAPGO_KEEP_9__ | 快速安全响应 | Project Mainline模块 |
| 更新认证 | 设备特定UID | 验证引导 |
安全要求比较
这些框架的不同之处突出了每个平台的架构如何影响其安全方法。iOS在一个“围栏花园”模型中运作,提供了紧密的控制和标准化的安全措施。相比之下,Android的开放生态系统提供了更大的灵活性在更新机制,但有时会面临碎片化挑战 [15]这些安全结构直接影响OTA更新的可靠性。
对于使用工具如Capgo的开发者,了解这些区别至关重要。iOS强制执行更严格的应用隔离和限制系统API访问 [17],而Android的更广泛的进程间通信选项需要小心的安全管理 [18]。截至2025年2月,iOS 18.3.1和各种Android版本的使用 [16],开发者必须确保他们的OTA更新策略与每个平台的最新安全标准相符
Capgo 平台概览

Capgo 将各个平台的OTA更新规则整合到一个高效的更新平台。
通过与iOS和Android安全协议的合作,Capgo确保OTA更新管理的顺畅。截至目前,它已经成功推送了 947.6亿次更新 覆盖 1,400个生产应用 [1].
Capgo Key Functions
Capgo专注于解决更新挑战,采用安全、高效和合规的交付方式。更新内容使用 端到端加密,并且仅在用户设备上进行解密。 [1]iOS使用自定义的Dart解释器来符合苹果的解释器更新规则。 [9]在Android上,它支持API级别22及以上,符合Capacitor的要求。 [9].
| 功能 | 实现 | 平台支持 |
|---|---|---|
| 更新交付 | 即刻部署 | iOS 13.0+,AndroidAPI 22+ |
| 安全 | 上下文: 企业产品/定价页面。角色: UI标签。见于: 企业企业.astro页面。消息键`enterprise_hero_security_label` (企业英雄安全标签)。 | 端到端加密 |
| 上下文: Capgo营销网站。角色: 短UI标签或导航项。消息键`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 加密 加密 for the implementation detail in Encryption, 遵守性 对于遵守性细节的实现 Capgo 安全扫描器 对于Capgo 安全扫描器中的产品工作流 Capgo 安全 对于Capgo 安全中的产品工作流 Capgo 信任中心 对于Capgo 信任中心中的产品工作流