想要立即更新您的 Capacitor 应用程序而无需等待应用商店延迟吗? 通过网络(OTA)更新允许您将更改推送到应用程序的 web 层(HTML、CSS、JavaScript)而无需重新提交到应用商店。但是,iOS 和 Android 处理这些更新的方式不同,了解这些差异至关重要。
关键要点:
-
iOS: 立即部署更新,但遵循严格的规则,包括文件路径限制和电源/网络要求。
-
Android: 使用分阶段发布(1% → 100%)具有灵活的电源/网络需求并支持后台更新。
-
安全性: Both platforms enforce strong security measures - iOS 依赖硬件加密, 而 Android 使用 Verified Boot 和 SELinux : 一个简化 OTA 更新的平台, 使用工具进行高效、安全和合规的部署, 已经全球推送超过 9.476 亿次更新.
-
Capgo: 功能 : iOS : Android
: 更新部署
| : 即刻全量发布 | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
|---|---|---|
| __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | 阶段性发布 (1% → 100%) |
| 后台更新 | 受限 | 支持 A/B 更新 |
| 存储 | 需要完整下载 | 支持流式更新 |
| 安全 | 硬件加密 | 已验证引导, SELinux |
| 功耗要求 | 50% 电池或已插电源 | Flexible |
| Network | Wi-Fi required | Supports various connections |
Capgo可以大大简化流程,确保在两种平台上更新都是安全、效率高且符合规范的,无论您是针对iOS还是Android,了解这些差异将有助于您创建更好的OTA update strategy.
iOS和Android在管理OTA(即时更新)时采取了不同的方法,两者在技术执行和审批流程上都有所不同
iOS App Store OTA更新规则
苹果公司对OTA更新有严格的规定:设备必须满足以下技术条件:运行iOS 5或更高版本,连接稳定的Wi-Fi网络,且电池至少有50%的电量或已连接到电源
苹果公司还对更新进行了严格的审批流程,评估更新的安全性、性能、商业合规性、设计和法律标准 [5]Google Play Store OTA更新规则 [4].
Google Play Store Update Rules
Google Play采用不同的运作方式,使用分阶段的发布系统。更新首先以小规模发布给1%的用户,持续24-48小时,然后逐步扩大,通常以25%的增量,直到在一到两周内完成全面部署 [7]自2023年8月起,所有新版Android必须针对最高可用的API级别 [3]此外,Android还采用流式更新,这有助于减少更新过程中额外存储空间的需求 平台更新差异 [8].
以下是iOS和AndroidOTA更新的关键区别
功能
| iOS | Android | 更新部署 |
|---|---|---|
| 即刻全面发布 | 分阶段发布(1% → 25% → 50% → 100%) | update process |
| 背景更新 | 受限 | 支持在后台进行A/B更新 [8] |
| 存储管理 | 需要完整下载 | 支持流式更新 [8] |
| 功耗要求 | 至少50%的电池或连接电源 [5] | 灵活的功耗要求 |
| 网络要求 | 需要Wi-Fi连接 [5] | 支持各种连接类型 |
Android的A/B更新系统独特之处在于允许在后台安装更新,而不中断用户。这一系统使用两个启动关键分区的槽位,避免了需要创建副本分区的需求,并优化了与旧方法相比的存储空间 [6].另一方面,iOS遵循更为控制和即时的更新流程,优先考虑稳定性和用户监督
用户组和更新分发
当它来到更新分发时,策略需要考虑各种设备和操作系统的独特约束
设备基于的更新规则
更新要求依赖于硬件和平台。例如,iOS设备需要至少20%的电池电量来进行用户触发的更新和30%的电池电量来进行 自动更新.在Mac上,要求根据芯片类型有所不同 - 20%的电池电量对于Apple Silicon设备,50%的电池电量对于Intel基准设备 [10].Android另一方面,具有更灵活的系统,但面临着由于生态碎片化而产生的挑战。制造商和运营商引入延迟,安全更新平均需要24天,设备特定完成需要额外的11天 [11].
操作系统版本要求
操作系统要求在更新分发中起着关键作用。对于Android应用,Google Play强制执行以下要求
| 时间框架 | 要求 |
|---|---|
| 2024 年 8 月 31 日之后 | 新应用必须针对 Android 14 (API 34+) 进行开发 |
| 当前 | 现有应用必须针对 Android 13 (API 33+) 进行开发 |
| 遗留 | 针对 Android 12 或更低版本的应用必须遵守现有的操作系统版本 |
对于 iOS,苹果使用快速安全响应 (RSR) 直接将关键补丁传递给最新的操作系统版本 [10]. Capgo 确保与运行 iOS 13.0+ 和 Android API 等级 22+ 的设备兼容 [9].
更新策略结果
Android 的 Project Treble has reduced the time required for security updates by about 7 days [11].为了有效地管理更新,建议将开发和生产环境分开 update channels [9]Capgo简化了过程,使用百分比的部署,允许控制的发布,同时遵守应用商店的指南
The updater also caches downloaded bundles in platform-specific directories for efficient and secure updates:
-
Capgo的更新器也缓存了下载的包在平台特定的目录中,用于高效和安全的更新::
/data/user/0/com.example.app/code_cache/capgo_updater -
iOS:
Library/Application Support/capgo
Android [9].
Update Speed and Efficiency
iOS
File Size and Network Management
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]. It also supports JavaScript updates while locking native code (like Java/Kotlin or Objective-C/Swift) to maintain stability [9].
更新速度对比
即使文件大小较小,更新速度仍然是一个关键因素。iOS由于其紧密集成的硬件和软件,可以更快地处理更新 [14].另一方面,Android的广泛硬件范围有时会导致更新性能不均衡 [13][14].
“实时向用户部署更新是Appflow,Ionic的移动CI/CD平台的最重要的好处之一。”
– Cecelia Martinez,开发者倡导者 [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 强制访问控制。验证引导功能确保 __CAPGO_KEEP_0__ 的真实性。 验证引导 确保设备的 code 真实性 [18]对于OTA更新,Android使用虚拟A/B分区系统(对于Android 11及后续版本的设备使用压缩)、硬件背后的Keystore进行加密任务,并通过OEM和运营商分发更新 功能 iOS [15].
| Android | 更新分发 | 通过Apple集中管理 |
|---|---|---|
| 通过OEM/运营商分发 | 通过OEM/运营商分发 | 通过OEM/运营商分发 |
| 安全验证 | 硬件加密 | SELinux + Verified Boot |
| 补丁交付 | 快速安全响应 | Project Mainline 模块 |
| 更新身份验证 | 设备特定UID | Verified Boot |
安全要求比较
这些框架之间的差异突出了每个平台的架构如何影响其安全方法。 iOS 在“围栏花园”模型中运作,提供紧密的控制和标准化的安全措施。 与此相反,Android 的开放生态系统提供了更大的灵活性在更新机制,但有时会面临碎片化挑战 [15]这些安全结构直接影响OTA更新的可靠性
对于使用工具如Capgo的开发者来说,了解这些区别至关重要。 iOS强制执行更严格的应用隔离和限制系统API访问 [17]而Android的更广泛的进程间通信选项需要小心地安全管理 [18]截至2025年2月,iOS 18.3.1和各种Android版本的使用情况下,开发者必须确保他们的OTA更新策略与每个平台的最新安全标准相符 [16]__CAPGO_KEEP_0__
Capgo __CAPGO_KEEP_0__实时更新控制台界面

通过与iOS和Android安全协议合作,Capgo确保OTA更新管理的顺畅。截至目前,它已成功
By working with iOS and Android security protocols, Capgo ensures seamless OTA update management. To date, it has delivered 覆盖 1,400个生产应用 __CAPGO_KEEP_0__ Live Update Dashboard Interface [1].
Capgo 功能
Capgo 专注于解决更新挑战,采用安全、高效、合规的交付方式。更新内容使用 终端到终端加密,仅在用户设备上进行解密 [1]。对于 iOS,使用自定义 Dart 解释器来符合 Apple 的解释器更新规则 [9]。对于 Android,支持 API 等级 22 及以上,符合 Capacitor 的要求 [9].
| 功能 | 实现 | 平台支持 |
|---|---|---|
| 更新交付 | 即刻部署 | iOS 13.0+,Android API 22+ |
| 安全 | 端到端加密 | 两种平台 |
| CI/CD 集成 | 与 Azure DevOps, GitHub, GitLab 兼容 | 跨平台 |
| 存储管理 | 仅编译 code | 平台特定的缓存 |
| 版本控制 | 回滚功能 | 两种平台 |
Cross-Platform Update Management
Capgo的频道系统为开发者提供了对iOS和Android更新的精确控制。该系统允许:
该平台的现实影响很明显。例如,NASA的 OSIRIS-REx 团队分享了:
“@Capgo是热 code推送的聪明方式(而不是像@AppFlow那样花所有的钱 :-)” [1]
Capgo可以调整任何JavaScript code,包括应用程序和生成的 code,但它严格避免修改native code(例如Android的Java/Kotlin或iOS的Objective-C/Swift) [9].
结论
__CAPGO_KEEP_0__ 应用程序的OTA更新需要针对iOS和Android采用不同的方法,因为两者都有各自的平台规则。对于iOS,存在更严格的控制,例如限制服务器路径到“/Library/NoCloud/ionic_built_snapshots” Capacitor apps . 这些差异突出了创建与每个平台框架相匹配的更新策略的重要性 [2]来自平台如__CAPGO_KEEP_0__的数据表明了这些策略的有效性。开发者成功地在1400个生产应用程序中交付了9.476亿次更新,证明了设计良好的更新系统的可扩展性 [2]. 然而,成功依赖于满足每个平台的要求,同时保持强大的安全措施
例如,苹果要求解释Capgo不能改变应用程序的核心功能或损害其安全 [1]. 这一规则是开发者必须遵循的平台特定指南的明确提醒,才能有效地实施OTA更新
继续阅读code OTA更新:针对iOS vs Android [2]如果您正在使用
Capacitor
__CAPGO_KEEP_0__ Capacitor OTA Updates: iOS 与 Android 的目标更新 连接它来 加密 加密的实现细节 合规 合规的实现细节 Capgo 安全扫描器 Capgo 安全 Capgo 信任中心 Capgo 信任中心的产品工作流程. Capgo 信任中心的产品工作流程. Capgo 信任中心的产品工作流程.