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

Capacitor iOS 与 Android OTA 更新

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

Capacitor iOS 和 Android OTA 更新

想立即更新您的 Capacitor 立即更新您的应用程序,无需等待应用商店的延迟? OTA 更新允许您将更改推送到应用程序的 web 层(HTML、CSS、JavaScript)而无需重新提交到应用商店。但是,iOS 和 Android 处理这些更新的方式不同,了解这些差异至关重要。

关键点:

  • iOS:更新立即部署,但必须遵守严格的规则,包括文件路径限制和电源/网络要求。

  • Android: 使用分阶段的滚动发布(1% → 100%)

  • Security: 双平台都强制实施严格的安全措施 - iOS依赖于硬件加密,而Android使用了Verified Boot和 SELinux.

  • Capgo: 一种简化OTA更新的平台, 947.6百万 全球

使用工具进行高效、安全和合规的部署

快速比较 功能 Android
更新部署 立即全量发布 分阶段发布(1% → 100%)
后台更新 有限 支持A/B更新
存储 需要完整下载 支持流式更新
安全 硬件加密 __CAPGO_KEEP_0__
安全启动、SELinux 电源要求 50%电池或已连接
灵活 网络 需要Wi-Fi

Capgo 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 __CAPGO_KEEP_0__ 有助于简化流程,确保在两种平台上更新都是安全、高效和符合规范的。无论您是否针对 iOS 或 Android,了解这些差异将有助于您创建更好的 OTA.

更新策略

iOS 和 Android 如何处理 OTA 更新

iOS 和 Android 在 OTA 更新管理方面采取了不同的方法,两者在技术执行和审批流程上都有所不同。

苹果有严格的OTA更新指南。设备必须满足特定的技术条件:它们需要运行iOS 5或更高版本,连接稳定的Wi-Fi网络,并且要么有至少50%的电池寿命,要么连接到电源源 [5]除了这些技术要求之外,苹果还实施了严格的审查流程,评估更新的安全性、性能、商业合规性、设计和法律标准 [4].

Google Play商店更新规则

Google Play运营方式不同,使用分阶段发布系统。更新首先以1%的小规模发布24-48小时,然后扩展,通常以25%的增量发布,直到在一到两周内完成部署 [7]自2023年8月起,所有新Android版本都必须针对最高可用的API级别 [3]此外,Android采用流式更新,帮助减少更新过程中额外存储空间的需求 平台更新差异 [8].

功能

iOS

Android iOS Android
更新部署 立即全量发布 分阶段发布(1% → 25% → 50% → 100%)
后台更新 受限 支持在后台进行A/B更新 [8]
存储管理 需要全量下载 支持流式更新 [8]
电源要求 至少50%的电池或已连接电源 [5] 灵活的电源要求
网络需求 需要Wi-Fi连接 [5] 支持多种连接类型

安卓的A/B更新系统独特之处在于允许在后台安装更新而不中断用户。这一系统使用两个槽位来为启动关键分区,避免了需要复制分区并优化了与旧方法相比的存储 [6]另一方面,iOS采用更为控制和即时的更新流程,优先考虑稳定性和用户监督

用户组和更新分发

当它来到更新分发时,策略需要考虑各种设备和操作系统的独特约束

设备更新规则

更新需求依赖于硬件和平台。例如,iOS设备需要至少20%的电池电量来进行用户触发的更新和30%的电池电量来进行 自动更新。在Mac上,要求不同基于芯片 - 20%的电池电量为Apple silicon设备和50%的电池电量为Intel芯片 [10]。安卓另一方面,拥有更为灵活的系统但面临着由于生态碎片化而产生的挑战。制造商和运营商引入延迟,安全更新平均需要24天,并且需要额外的11天来完成设备相关的工作 [11].

系统版本要求

操作系统要求在更新分发中起着关键作用。对于 Android 应用,Google Play 强制执行以下内容:

时间框架 要求
2024 年 8 月 31 日之后 新应用必须针对 Android 14 (API 34+)
当前 现有应用必须针对 Android 13 (API 33+)
遗留 针对 Android 12 或更低版本的应用必须遵守现有的 OS 版本

对于 iOS,Apple 使用快速安全响应 (RSR) 直接将关键补丁传递给最新的 OS 版本 [10]. Capgo 确保与运行 iOS 13.0+ 和 Android API 等级 22+ 的设备兼容 [9].

更新策略结果

安卓的 项目 Treble 已将安全更新所需的时间缩短了约 7 天。 [11]为了有效地管理更新,建议将开发和生产环境的更新通道分开。 __CAPGO_KEEP_0__ 利用百分比式部署简化了更新流程,允许在遵守应用商店指南的同时进行控制的发布。 [9].Capgo简化了部署过程,使用百分比方式,允许控制性发布,同时保持在应用商店的指南之内。

安卓

  • iOS: /data/user/0/com.example.app/code_cache/capgo_updater

  • iOS: Library/Application Support/capgo

更新速度和效率 [9].

__CAPGO_KEEP_0__

Over-the-Air更新的速度和效率在iOS和Android上都起着至关重要的作用。网络条件和文件大小管理是影响这一点的两个关键因素。

文件大小和网络管理

保持文件大小的优化对于OTA更新的顺畅进行至关重要。例如,Capgo的更新器在应用启动时在后台线程中运行更新检查,确保用户界面保持响应 [9].它还支持JavaScript更新,同时锁定本机code(如Java/Kotlin或Objective-C/Swift)以保持稳定 [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 强制访问控制 确保了 确保特性确实是 code [18]的真实性 。对于OTA更新,安卓使用 虚拟A/B分区系统 [15].

Feature 功能特性 安卓
更新分发 通过苹果进行集中管理 通过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 Live Update 控制台界面

Capgo 将平台特定的 OTA 更新规则汇集到一个流线化的更新平台中。

通过与 iOS 和 Android 安全协议合作,Capgo 确保 OTA 更新管理的无缝体验。截至目前,它已经交付了 94.76亿次更新 跨 1,400个生产应用 [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 多平台缓存
版本控制 回滚功能 两者

跨平台更新管理

Capgo的频道系统为开发者提供了对iOS和Android更新的精确控制。这一系统允许:

  • iOS和Android的独立更新频道

  • 上传 独立的包 可选的跨频道链接

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

该平台的现实影响是明显的。例如,NASA的 OSIRIS-REx 团队分享:

“@Capgo 是一种聪明的方式来进行热 code 推送(而不是像 @AppFlow 那样花所有的钱 :-)” [1]

Capgo 可以调整任何 JavaScript code,包括应用程序和生成的 code,但它严格避免修改本机 code(例如 Android 的 Java/Kotlin 或 iOS 的 Objective-C/Swift) [9].

结论

OTA 更新 Capacitor 应用 需要针对 iOS 和 Android 的不同平台进行不同的方法,因为平台特定的规则。对于 iOS,存在更严格的控制,例如文件路径限制,限制服务器路径到“/Library/NoCloud/ionic_built_snapshots” [2]. 与此同时,Android 允许更多的自由, fewer 限制虚拟机和解释器访问 API [2]. 这些差异突出了创建与每个平台框架相匹配的更新策略的重要性

来自平台如 Capgo 的数据表明了这些策略的有效性。开发人员成功地将 1,400 个生产应用程序中的 9,476,000,000 次更新交付给用户,证明了设计良好的更新系统的可扩展性 [1]. 然而,成功依赖于满足每个平台的要求,同时保持强大的安全措施

例如,苹果要求解释器code不能改变应用程序的核心功能或损害其安全性 [2]本规则是开发者在有效实施OTA更新的过程中必须遵守的平台特定指南的明确提醒。

继续使用Capacitor OTA 更新:针对 iOS 与 Android

If you are using __CAPGO_KEEP_0__ OTA Updates: Targeting iOS vs Android Capacitor iOS 与 Android 的 OTA 更新 for the implementation detail in 加密 合规 for the implementation detail in 合规 Compliance for the product workflow in __CAPGO_KEEP_0__ 安全扫描器 Capgo Capgo Capgo 安全 为 Capgo 安全 的产品工作流程 Capgo 信任中心 为 Capgo 信任中心 的产品工作流程

Capacitor 应用实时更新

当 web 层 bug 活跃时,通过 Capgo 发布修复,而不是等待几天的 app store 审批。用户在后台接收更新,而原生变化仍在正常审查路径中。

最新博客

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