跳过主要内容

Capacitor OTA Updates: Targeting iOS vs Android

探索iOS和Android OTA更新策略的差异,重点关注部署、安全性和用户需求。

马丁·多纳迪厄

马丁·多纳迪厄

内容营销

Capacitor OTA Updates: Targeting iOS vs Android

想更新你的 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 实时更新控制台界面

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 更新的精确控制。这一系统允许:

  • 为 iOS 和 Android 设置独立的更新频道

  • 上传 不同的捆绑包 具有可选的跨频道链接

  • 自动检测本机code变化 [9]

该平台的现实影响很明显。例如,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 信任中心中的产品工作流

实时更新的Capacitor应用

当web层bug出现时,通过Capgo将修复推送,而不是等待几天的应用商店审批。用户在后台接收更新,而原生变化仍在正常审查路径中。

来自马丁的人性化支持

立即开始

最新博客

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