メインコンテンツへスキップ
チュートリアル

Apple Remote Code のルールと Capgo Live Updates

App Review Guideline 2.5.2、ADPLA 3.3.1(B)、および2025年のGuideline 4.7におけるミニアプリの明確化は、ネイティブのリモートcode、インタプリタ実行されるcodeの例外、ミニアプリカタログを対象としています。Capacitor WebView内の署名済みJavaScriptも、アプリのレビュー済みの目的を維持し、OSのセキュリティに配慮し、ADPLA 3.3.1(C)の範囲内に収めるなら、依然としてインタプリタ実行されるcodeに該当し得ます。Capgoがこのモデルにどう当てはまるかを見ていきます。

Appleのリモートcode実行ルールとCapgoライブアップデート Capgo ブログイラスト

リリースするチーム Capacitor Live Updates Appleのレビューメールで言及された後も、同じ質問を繰り返す リモート code 実行: それは Capgo をブロックしますか?

ほとんどの Capacitor アプリでは、いいえ。 Capgo は、アプリがすでに実行している web bundle を置き換えます。Swift や framework、bytecode をダウンロードするわけではなく、製品をミニ App Store に変えるものでもありません。Apple が引用するルールは実在しますが、それらが対象とするのは、署名済み JavaScript を WebView または WKWebView JavaScriptCore に配信する場合とは別の種類の挙動です。

これはエンジニアリング向けのガイダンスであり、法的助言ではありません。Apple の公開文書を読み、アプリについては弁護士に相談してください。

レビュアーが引用する3つの文書

App Review Guideline 2.5.2

ガイドライン 2.5.2 には、「アプリの機能や動作(他のアプリを含む)を追加または変更する code をダウンロード、インストール、または実行してはならない」と記載されています。

レビューチームは次のような場合にこの一文を使います:

  • dlopen, dlsym、または同様の動的ロード、
  • performSelector: や、private API を狙うその他の runtime hook、または
  • 承認後にネイティブの挙動を変更することを目的としたリモートスクリプト。

それは、 リモート code 実行 パターンです。インストール後にダウンロードされるすべてのバイトを禁止しているわけではありません。

ADPLA セクション 3.3.1(B)(code による解釈)

この Apple Developer Program ライセンス契約 セクション 3.3.1(B) を許可しています インタプリタ型のcode のダウンロードを許可しています:

  1. アプリの主な目的を変更しないこと、
  2. 署名、サンドボックス、その他のOSセキュリティ機能をバイパスしないこと、および
  3. 他のアプリケーション向けのストアやストアフロントを作成しないこと。

CapacitorのWebレイヤーは、設計上codeで解釈されます。 Capgo ユーザーがApp Storeから審査済みのバイナリをインストールした後、そのレイヤーを差し替えます。

ADPLA 第3.3.1条(C)(追加機能)

セクション 3.3.1(C) 追加のガードレールを導入: Appleの事前の書面による承認または許可された 3.3.9(A) In-App Purchaseの利用において、アプリはApp Store、Custom App Distribution、TestFlight以外の配布メカニズムを通じて追加の機能や機能を提供、アンロック、または有効化してはならない。

特定のOTA bundleがその線を超えるかどうかは、あなたのチームの法的判断事項です。Capgoはそれを代行しません。 コンプライアンスチェックリスト 3.3.1(C)を明記しており、各リリースを評価できます。

ガイドライン4.7と2025年11月の明確化

Appleの2025年11月13日のガイドライン更新 明確化しました ガイドライン 4.7 HTML5 と JavaScript の ミニアプリ、ミニゲーム、チャットボット、プラグイン、および同様のソフトウェアを提供するアプリ向け バイナリに組み込まれていない.

アプリ内で多数の異なるソフトウェア体験を閲覧または起動する場合、4.7 のカタログ、インデックス化、年齢レーティングの仕組みが必要になる可能性があります。バンドルの所有権が判断基準ではありません。 提供する体験 が判断基準です。

Capgo は あなたの バンドルをオン あなたの 。それ自体は 4.7 マーケットプレイスではありません。ホワイトラベルホストやミニアプリプラットフォームを提供している場合は、OTA に依存する前に 4.7 を真剣に検討してください。

Capgo が実際に配信するもの

レイヤー Capgo の動作
ネイティブバイナリ 変更なし。新しいプラグイン、権限、entitlement にはストアビルドが必要です。
Webアセット 署名済みのJavaScript、HTML、CSS、フォント、画像、静的ファイルがアプリ内バンドルを置き換えます。
実行 Appleがシェルと一緒に承認済みのWebViewまたはJavaScriptCoreエンジン内で動作します。
暗号化 オプションのエンドツーエンド暗号化により、転送中および保存中のバンドル内容はCapgoから読み取れなくなります。

Capgoは、Webレイヤーの修正を数分で配信し、チャネル上の不良バンドルをロールバックし、ネイティブリリースはApp Storeの経路に乗せたままにできます。数千の本番アプリがこの分離を採用しており、ライブアップデートをリモートのネイティブローダーにしてしまうことはありません。

チーム向けの実践的なルール

  • Appleが審査した製品内のバグ、UI、コピー、改善にはOTAを使用します。
  • ネイティブcode、SDK、権限、またはエントitlementが変更された場合は、新しいバイナリを提出します。
  • ライブアップデートで価格モデルを変更したり、隠し機能を解放したり、アプリの目的を転換したりしないでください。
  • 求められた場合、App Reviewのメモにアップデートの仕組みを記載します。
  • 全文を読む AppleのリモートcodeとCapgo セクションを次のリリース前に読みます。

プロダクトビュー(チャネル、ロールバック、署名)が必要な場合は、ここから開始します Capacitor Live Updates。ポリシーの詳細が必要な場合は、上記のコンプライアンスドキュメントまたは古いウォークスルーを使用します AppleはLive Updateを許可しているのか?.

Capacitor アプリ向けの Live Updates

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

最新のブログ記事

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