メインコンテンツへスキップ

Capacitor OTAアップデート:iOSとAndroidのターゲット設定

デプロイ、セキュリティ、ユーザー要件に焦点を当て、iOSとAndroidのOTAアップデート戦略の違いを解説します。

"Capacitor OTA Updates: iOS と Android のターゲット設定" Capgo ブログ イラスト

アプリを Capacitor アプリストアの遅延なしで即座に更新したいですか? Over-the-Air(OTA)アップデートを使えば、アプリのWebレイヤー(HTML、CSS、JavaScript)に変更を配信でき、アプリストアへ再提出する必要はありません。ただし、iOSとAndroidではこれらのアップデートの扱いが異なるため、その違いを理解することが重要です。

要点:

  • iOSと:更新は即座にデプロイされますが、ファイルパスの制限や電源/ネットワーク要件など、厳格なルールに従います。

  • Androidでは:段階的なロールアウト(1% → 100%)を使用し、柔軟な電源/ネットワーク要件に対応し、バックグラウンド更新をサポートします。

  • セキュリティ:両プラットフォームとも強力なセキュリティ対策を強制しています。iOSはハードウェアベースの暗号化に依存し、AndroidはVerified Bootと SELinux.

  • Capgo:OTA更新を簡素化し、以下を配信するプラットフォームです 9億4760万件のアップデート 効率的で安全かつコンプライアンス準拠のデプロイメントを実現するツールで、グローバルに展開できます。

簡単比較:

機能 iOSと Androidでは
アップデートのデプロイ 即時フルリリース 段階的ロールアウト (1% → 100%)
バックグラウンド更新 制限あり A/Bアップデートに対応
ストレージ フルダウンロードが必要 ストリーミングアップデートに対応
セキュリティ ハードウェアベースの暗号化 Verified Boot、SELinux
バッテリー要件 バッテリー50%以上または充電中 柔軟
ネットワーク Wi-Fi接続が必要 各種接続に対応

Capgo はプロセスを簡素化し、両プラットフォームで更新が安全かつ効率的、かつコンプライアンスに準拠することを保証します。iOSでもAndroidでも、これらの違いを理解することで、より優れたOTAを作成できます。 アップデート戦略を.

iOSとAndroidのOTAアップデートの扱い

OTA(Over-The-Air)アップデートの管理において、iOSとAndroidは技術的な実装から承認プロセスまで、異なるアプローチを採用しています。

iOS App Storeのアップデートルール

AppleはOTAアップデートに対して厳格なガイドラインを設けています。デバイスは、iOS 5以降であること、安定したWi-Fiに接続されていること、そしてバッテリー残量が50%以上であるか電源に接続されていること、といった特定の技術的条件を満たす必要があります。 [5]これらの技術的要件に加え、Appleは安全性、パフォーマンス、ビジネスコンプライアンス、デザイン、法的基準の観点からアップデートを評価する厳格な審査プロセスを適用しています。 [4].

Google Play Storeのアップデートルール

一方、Google Playは仕組みが異なり、段階的ロールアウト(staged rollout)システムを採用しています。アップデートはまずユーザーの1%に24〜48時間リリースされ、その後は通常25%刻みで拡大し、1〜2週間で全ユーザーへ展開されます。 [7]また、2023年8月以降、すべての新しいAndroidバージョンは、利用可能な最も高い API レベルをターゲットにする必要があります。 [3]さらに、Androidはストリーミングアップデートを採用しており、これによりアップデート中の余分なストレージ容量の必要性を減らせます アップデートプロセス [8].

プラットフォームごとのアップデートの違い

iOSとAndroidのOTAアップデートにおける主な違いは以下の通りです:

機能 iOSと Androidでは
アップデートのデプロイ 即時フルリリース 段階的ロールアウト (1% → 25% → 50% → 100%)
バックグラウンド更新 制限あり バックグラウンドでのA/Bアップデートに対応 [8]
ストレージ管理 フルダウンロードが必要 ストリーミングアップデートに対応 [8]
バッテリー要件 バッテリー残量50%以上、または充電中 [5] 柔軟な電源要件
ネットワーク要件 Wi-Fi接続が必要 [5] さまざまな接続タイプに対応

AndroidのA/Bアップデートシステムは、ユーザーの操作を妨げずにバックグラウンドでアップデートをインストールできる点が特徴です。このシステムはブートに不可欠なパーティションに2つのスロットを使用しており、従来の方式と比べてパーティションの重複を避け、ストレージを最適化しています。 [6]一方、iOSはより制御された即時的なアップデートプロセスを採用しており、安定性とユーザー側の管理を優先しています。

ユーザーグループとアップデートの配信

アップデートの配信では、さまざまなデバイスやOS固有の制約を考慮した戦略が必要です。

デバイスベースのアップデートルール

アップデートの要件はハードウェアやプラットフォームに大きく依存します。例えば、iOSデバイスでは、ユーザーが開始するアップデートには少なくとも20%のバッテリー残量が必要で、30%のバッテリー残量も必要です。 自動アップデートMacでは、チップセットによって要件が異なり、Apple silicon搭載デバイスでは20%、Intel搭載デバイスでは50%のバッテリー残量が必要です。 [10]一方、Android はより柔軟なシステムですが、エコシステムの断片化により課題に直面しています。メーカーやキャリアによる遅延があり、セキュリティ更新の平均は24日、デバイス固有の完了にはさらに11日かかります。 [11].

OSバージョンの要件

OS の要件は、更新の配布方法に重要な役割を果たします。Android アプリの場合、Google Play は以下を強制します:

期間 要件
2024年8月31日以降 新規アプリは Android 14 (API 34+) をターゲットにする必要があります
現在 既存アプリは Android 13 (API 33+) をターゲットにする必要があります
レガシー Android 12 以下を対象とするアプリは、既存の OS バージョンに準拠する必要があります

iOS では、Apple が Rapid Security Response (RSR) を使用して、重大なパッチを最新の OS バージョンに直接配信します [10]。Capgo は、iOS 13.0 以上および Android API レベル 22 以上で動作するデバイスとの互換性を確保します [9].

アップデート戦略の結果

Android の Project Treble により、セキュリティ更新に要する時間が約 7 日短縮されました [11]。更新を効果的に管理するには、開発環境と本番環境を分離することをお勧めします アップデートチャネル [9]。Capgo は、パーセンテージベースのデプロイメントによりプロセスを簡素化し、アプリストアのガイドラインを遵守しながら制御されたロールアウトを可能にします。

アップデータは、効率的かつ安全な更新のために、ダウンロードしたバンドルをプラットフォーム固有のディレクトリにキャッシュします:

  • Androidでは: /data/user/0/com.example.app/code_cache/capgo_updater

  • iOSと: Library/Application Support/capgo

このキャッシュシステムにより、スムーズで信頼性の高い更新を実現します [9].

アップデートの速度と効率

OTA(Over-the-Air)更新の速度と効率性は、iOSおよびAndroidの両方でユーザー体験を大きく左右します。これに大きく影響する2つの要素は、ネットワーク状況とファイルサイズの管理の良し悪しです。

ファイルサイズとネットワーク管理

ファイルサイズの最適化は、スムーズなOTA更新に不可欠です。例えば、Capgoのアップデータはアプリ起動時にバックグラウンドスレッドで更新チェックを実行し、UIの応答性を保ちます [9]。また、ネイティブのcode(Java/KotlinやObjective-C/Swiftなど)をロックしながらJavaScriptの更新をサポートし、安定性を維持します [9].

アップデート速度の比較

ファイルサイズが小さくても、更新速度は依然として重要な要素です。iOSはハードウェアとソフトウェアが緊密に統合されているため、更新処理が速い傾向があります [14]。一方、Androidはハードウェアのバリエーションが広いため、更新パフォーマンスにばらつきが生じることがあります [13][14].

「ユーザーにライブ更新を即座にデプロイできることは、IonicのモバイルCI/CDプラットフォームであるAppflowの最も重要な利点の一つです。」
– セシリア・マルティネス、Developer Advocate [12]

更新効率を高めるには、差分更新やネイティブ機能の活用が鍵です。例えば Capacitor は、特定の処理をネイティブレイヤーに移行します。差分更新と組み合わせることで、更新時間とデータ使用量の両方を削減できます。 [12]。Android の市場シェアは 2023 年 3 月時点で世界全体で 70% を超えています [13] - 多様なデバイス間で一貫したパフォーマンスを維持するためには、効率的なアップデートの配信が特に重要です。

sbb-itb-f9944d2

セキュリティルールと要件

OTAアップデートにおいて、iOSとAndroidはデータ保護とシステムセキュリティを確保するために異なるアプローチをとっており、それぞれに最適化されたプロトコルを使用しています。

iOSのセキュリティ基準

Appleのアップデートプロセスは厳格に管理されており、高度なセキュリティを念頭に設計されています。iOSデバイスは以下に依存しています: ハードウェアベースの暗号化, 各デバイス固有の2つの組み込みAES 256ビットキーを使用し [17]。また、すべてのデバイスにはAES 256ビットキーが統合された、固有のハードウェアベースUIDが含まれています [17]。アップデートは完全性が検証され、デバイスごとにカスタマイズされるほか、ダウングレード攻撃に対する保護機能も備わっています。さらにAppleは、セキュリティリスクを防ぐためにアップデート中のユーザーデータを隔離します [10]。特筆すべき機能は、Appleの 迅速なセキュリティ対応、システム全体のアップデートを必要とせず、セキュリティパッチを迅速にデプロイできます [10].

Androidのセキュリティ基準

AndroidはLinuxベースの基盤上にセキュリティを構築しており、ユーザー分離とシステムレベルの保護に重点を置いています。各アプリには一意のUIDが割り当てられ、 SELinux が強制アクセス制御を適用します。また、 検証済みブート 機能が code の真正性を保証します [18]。OTAアップデートでは、Androidは Virtual A/Bパーティションシステム (Android 11以降のデバイスでは圧縮を利用) を使用し、暗号処理にはハードウェアベースのKeystore、アップデートの配信にはOEMやキャリアを利用します [15].

機能 iOSと Androidでは
アップデート配信 Apple による一元管理 OEM/キャリア経由の配布
セキュリティ検証 ハードウェアベースの暗号化 SELinux + Verified Boot
パッチ配信 迅速なセキュリティ対応 Project Mainline モジュール
アップデートの認証 デバイス固有の UID 検証済みブート

セキュリティ要件の比較

これらのフレームワークの違いは、各プラットフォームのアーキテクチャがセキュリティへの取り組みをどう形作っているかを浮き彫りにしています。iOSは「ウォールドガーデン」モデルを採用し、厳格な制御と標準化されたセキュリティ対策を提供します。対照的に、Androidのオープンなエコシステムはアップデートの仕組みに柔軟性がある一方で、断片化(フラグメンテーション)の問題に直面することがあります。 [15]こうしたセキュリティ構造は、OTAアップデートの信頼性に直接影響します。

Capgo のようなツールを扱う開発者にとって、これらの違いを理解することが重要です。iOSはアプリの分離をより厳格に行い、システム API へのアクセスを制限しています。 [17]一方で、Androidはプロセス間通信(IPC)の選択肢が広いため、慎重なセキュリティ管理が求められます。 [18]2025年2月現在、iOS 18.3.1や様々なAndroidバージョンが利用されている中で、 [16]開発者は、各プラットフォームの最新セキュリティ基準に沿ったOTAアップデート戦略を策定する必要があります。

Capgo プラットフォーム概要

Capgo Live Update ダッシュボードインターフェース

Capgo は、プラットフォームごとに異なるOTAアップデートのルールを、一つの効率的なアップデートプラットフォームへと統合します。

iOSとAndroidのセキュリティプロトコルに対応することで、Capgo はシームレスなOTAアップデート管理を実現します。これまでに、 9億4760万件のアップデート を 1,400件のプロダクションアプリ [1].

Capgo 主要機能

Capgo は、セキュアで効率的、かつコンプライアンスに準拠した配信によってアップデートの課題解決に注力しています。アップデートは、 エンドツーエンド暗号化によって保護され、復号はユーザーデバイス上でのみ行われます [1]。iOSでは、Appleの「インタプリタのみのアップデート」というルールに適合するため、カスタムDartインタプリタを使用しています [9]。Androidでは、Capacitor の要件に従い、API レベル22以上をサポートしています [9].

機能 実装方法 対応プラットフォーム
アップデート配信 即時デプロイ iOS 13.0+、Android API 22+
セキュリティ エンドツーエンド暗号化 両プラットフォーム
CI/CD 連携 Azure DevOps、GitHub、GitLab と連携 クロスプラットフォーム
ストレージ管理 code のみコンパイル プラットフォーム固有のキャッシュ
バージョン管理 ロールバック機能 両プラットフォーム

クロスプラットフォームのアップデート管理

Capgo のチャンネルシステムにより、開発者は iOS と Android のアップデートを精密に制御できます。このシステムでは以下が可能です:

  • iOS と Android 用の個別のアップデートチャンネル

  • アップロード 個別の bundle オプションでチャンネル間をリンク可能

  • ネイティブ code 変更の自動検知 [9]

このプラットフォームの実際の影響は明らかです。例えば、NASA の OSIRIS-REx チームが共有しました:

「@Capgo は、ホット code プッシュを手軽に実現できるスマートな方法です(@AppFlow のように莫大な費用をかける必要はありません) :-)」 [1]

Capgo はアプリや生成された code を含む、あらゆる JavaScript の code を調整できますが、ネイティブの code(Android の Java/Kotlin や iOS の Objective-C/Swift など)を変更することは厳密に避けます [9].

まとめ

の OTA 更新 Capacitor アプリ は、プラットフォーム固有のルールにより、iOS と Android で異なるアプローチが必要です。iOS では、サーバーパスを “/Library/NoCloud/ionic_built_snapshots” に制限するファイルパス制限など、より厳格な管理が行われます [2]。一方、Android はより自由度が高く、仮想マシンやインタープリターによる API アクセスへの制限が少なくなります [2]。これらの違いは、各プラットフォームのフレームワークに合った更新戦略を作成することの重要性を浮き彫りにしています。

Data from platforms like Capgo demonstrates how effective these strategies can be. Developers have successfully delivered 947.6 million updates across 1,400 production apps, proving the scalability of well-designed update systems [1]。ただし、成功には各プラットフォームの要件を満たしつつ、強力なセキュリティ対策を維持することが不可欠です。

例えば、Appleは、解釈されるcodeがアプリのコア機能を変更したり、セキュリティを損なったりしてはならないと定めています。 [2]。このルールは、OTA更新を効果的に実装するために開発者が従うべきプラットフォーム固有のガイドラインを明確に示しています。

続きを読む: Capacitor OTA Updates: iOSとAndroidのターゲティング

使用している場合 Capacitor OTAアップデート:iOSとAndroidのターゲット設定 セキュリティとコンプライアンスを計画するには、これを以下と連携させてください 暗号化 暗号化の実装詳細について コンプライアンス コンプライアンスの実装詳細について Capgo セキュリティスキャナー Capgo Security Scanner のプロダクトワークフローについて Capgo のセキュリティ Capgo Security のプロダクトワークフロー向け、および Capgo トラストセンター Capgo Trust Center のプロダクトワークフロー向け。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。