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

コンプライアンス

Capgo は、プライバシー、セキュリティ、およびコンプライアンスを重視して設計されています。このドキュメントでは、Capgo の live update サービスを利用する際に、どのようなデータが収集され、どのように使用されるのか、またユーザーのプライバシー保護と規制遵守のためにどのような措置が講じられているかを説明します。

Capgo は、live update サービスを効果的に提供するために必要な最小限のデータのみを収集します。データ収集は、ユーザーのトラッキングや分析ではなく、運用の要件に焦点を当てています。

Capgo は、live updates 機能の提供に必要なデータのみを収集します。アプリがアップデートを確認したり、新しい bundle をダウンロードしたりする際、以下の情報が収集されます:

  • App ID: アプリを正しいアカウントに関連付けるために使用される、アプリ固有の識別子
  • アプリバージョン Code: どのアップデートがアプリと互換性があるかを判断するために使用される、アプリの code バージョン
  • アプリのバージョン名: 表示用に使用されるアプリのバージョン名
  • プラットフォーム: アップデートの互換性を判断するために使用されるアプリのプラットフォーム(iOS、Android、Electron)
  • デバイスID: Live Updateの動作、アップデートの適用可否、月間アクティブデバイス数の重複排除、サポート、不正防止、および運用の信頼性確保のために、アプリごとにランダム生成されるデバイス識別子です。これは広告用IDではなく、ハードウェア識別子から生成されるものでもありません。また、アプリやウェブサイト、Capgo の顧客をまたいでユーザーを追跡するために使用されることもありません。iOSでは、 v7.25.0+ Keychainを使用して、通常の再インストール後もIDを保持します。Androidでは、 v7.50.1+ (または v5.50.1+ と v6.50.1+ on those release lines); IDはAndroidのBackup/Restoreがアプリのpreferencesを保持している場合にのみ復元されます。バックアップを無効にする、preferencesを除外する、またはアプリデータを消去すると、新しいデバイスIDが生成されます。
  • Bundle ID: デバイスに現在インストールされているbundleの一意識別子
  • チャンネル名: アップデートを受け取るために選択されているチャンネル名
  • OSバージョン: デバイスと互換性のあるアップデートを判断するために使用されるOSのバージョン
  • プラグインのバージョン: デバイスにアップデートを配信するために使用される@capgo/capacitor-updater pluginのバージョン
  • リクエスト対象国: 利用可能な場合、デバイスからのCloudflareで処理されたリクエストから受信した、最新の有効な2文字のISO 3166-1 codeです。これはGPSやアプリから提供された位置情報ではありません。

追加の技術データ:

  • アップデート確認のタイムスタンプ
  • ダウンロードの成否ステータス
  • Bundleのインストール状況
  • ロールバックのイベントと理由
  • IPアドレス(ジオロケーションおよびCDN最適化用)

エンドポイントのストレージ詳細

「Endpoint Storage Detail」セクション

アップデーターは、アップデートの確認、チャネルの自動割り当て、および統計情報の収集のために、設定された最大3つのエンドポイントを使用できます:

  • updateUrl (/updates) デバイスがどのbundleを受け取るべきかをチェックします。このエンドポイントは、Capgo Cloud Live Updates に必須です。
  • channelUrl (/channel_self) デバイスのチャネル割り当てを読み取り、更新します。
  • statsUrl (/stats) アップデートのライフサイクル、ヘルスチェック、および失敗イベントを明示的に送信します。これら追加の統計レポートを無効にするには、 statsUrl を空の文字列に設定するか、自身でホストしているエンドポイントや管理下のプロキシを指定してください。プロキシが統計情報を Capgo から隔離できるのは、ペイロードを転送するのではなく、プロキシ側で終了(terminate)させる場合のみです。詳細は セルフホスト統計エンドポイントの仕様を.

無効化 statsUrl は、明示的な統計パスのみを変更します。 /updates と /channel_self 依然として、アプリスコープの安定した device_id が必要です。これにより、Capgo は適用すべきアップデートとチャネルを決定し、課金用の月間アクティブデバイス数をカウントできます。

有効な場合、 statsUrl Capgo には以下を保存できます:

記録保存されたフィールド
課金対象MAUdevice_id, app_id, org_id, timestamp
デバイスインベントリdevice_id, app_id, updated_at, platform, plugin_version, os_version, version_build, version_name, is_prod, is_emulator, default_channel, key_id(任意) custom_id(任意)リクエスト国 code
統計イベントdevice_id, app_id, action, version_name, created_at

有効な場合、 statsUrl 無効でも、 updateUrl 有効なままの場合、Capgo は引き続き以下を保存できます:

レコード保存済みフィールド
課金対象MAUdevice_id, app_id, org_id, timestamp
デバイスインベントリdevice_id, app_id, updated_at, platform, plugin_version, os_version, version_build, version_name, is_prod, is_emulator, default_channel, key_id, オプション custom_id, オプションのリクエスト国 code
アップデート決定イベントdevice_id, app_id, action, version_name, created_at; アクションには以下が含まれます get, noNew, missingBundle, cannotGetBundle, プラットフォーム/バージョンのブロック、プランまたはチャネルのエラー

ネイティブバージョンの課金とチャートには、ランタイムテレメトリに以下を含めることもできます platform と version_build デプロイされた課金ストアがこれらのフィールドをサポートしている場合、MAU使用量を含めることができます。最新の統計テレメトリには、オプションの統計を含めることも可能です metadata アプリから送信されたときです。

MAUの請求に絶対に必要な最小限のデータは、安定した匿名 device_id, app_id, org_id、およびタイムスタンプです。

Capgo は以下の情報を明示的に収集しません:

  • ユーザーの個人情報や認証情報
  • アプリの使用状況の分析やユーザー行動データ
  • アプリ内のコンテンツやユーザー生成データ
  • 一般的な地域情報以外の位置情報
  • 広告ID、ハードウェア識別子、またはアプリ・Webサイト・Capgo の顧客間でユーザーを追跡するために使用される識別子
  • 生体情報や機密性の高い個人データ

Capgo が収集するデータは、以下の目的のみに使用されます:

  • 特定のアプリバージョンで利用可能なアップデートの判定
  • 地理的なCDN選択によるコンテンツ配信の最適化
  • アップデートとデバイス機能の互換性確保
  • アップデートのロールアウトとチャネル割り当ての管理
  • アップデート成功率のモニタリングと問題の特定
  • ダウンロードのパフォーマンスと信頼性の最適化
  • アップデート配信システム全体の向上
  • アップデート失敗時のデバッグとトラブルシューティング
  • 不正利用の防止とサービスの可用性確保
  • アップデートの真正性と整合性の検証
  • 悪意のあるアップデートや破損したアップデートからの保護
  • サービスのセキュリティと安定性の維持
  • アップデートのbundleとメタデータは安全なクラウドインフラに保存されます
  • パフォーマンス向上のため、データは複数のリージョンに分散されます
  • EUのデータレジデンシーが必要なアプリは、以下を設定できます updateUrl まで https://plugin.eu.capgo.app/updates, statsUrl まで https://plugin.eu.capgo.app/statsや channelUrl まで https://plugin.eu.capgo.app/channel_self. 詳細は データの保存場所 設定内容をご確認ください。
  • すべてのデータ通信は、業界標準のプロトコル(HTTPS/TLS)を使用して暗号化されます。
  • 運用ログは、サービスの提供、セキュリティ、請求、およびサポートのために保持されます。
  • Bundleの保持期間は、App Settingsからアプリごとに設定可能です。アクティブなchannelまたはrolloutに紐付いているBundleは保護されますが、使用されていないBundleは、アプリに設定された保持ルールに従って削除の対象となります。
  • 保存されている過去のbundleやDeltaアセットはストレージ容量を消費します。リージョン間のレプリケーションによってストレージ消費量が増えることはありません。
  • 個人データが存在する場合、適用されるデータ保護法に従って削除されます。
  • すべてのデータは転送中および保管時に暗号化されます
  • データへのアクセスは、権限を持つ担当者のみに制限されています
  • 定期的なセキュリティ監査とモニタリングを実施しています
  • 業界標準のセキュリティプラクティスに従っています
  • SOC 2認証: Capgo は現在 SOC 2 Type II 認証を取得しており、セキュリティ、可用性、機密性において最高水準を保証します。コンプライアンス状況についてはこちらをご確認ください: capgo.appの信頼性
  • ISO 27001: Capgo は ISO 27001 認証を取得しています。コンプライアンス状況はこちらから確認できます: capgo.app の信頼性
  • 継続的な Code 監査: すべてのコミットは、以下によって自動的に監査されます: SonarCloud による plugin と backend、これにより code の品質、脆弱性検知、および保守性を確保します
  • 脆弱性スキャン: 追加のセキュリティスキャンは以下で実行されます: Snyk 依存関係におけるセキュリティ脆弱性の検出と修正
  • インフラストラクチャのセキュリティ: 当社のホスティングインフラは、以下の手段を通じて継続的に監視・検証されています: ホスティングのセキュリティチェック
  • AIを活用した Code レビュー: すべてのプルリクエストはCodeRabbit AIによってレビューされ、潜在的な問題やセキュリティ上の懸念を特定し、code の品質基準を維持します

Capgo のユーザーとして、以下の項目を管理できます:

  • チャネル管理: どのユーザーにどのアップデートを配信するかを制御します
  • データの最小化: 共有するデバイス情報の範囲を設定します
  • 地理的制御: アップデートの配信地域を管理します
  • 保持設定: アップデートデータの保持期間を制御します

アプリのユーザーは以下のメリットを享受できます:

  • 最小限のデータ収集: アップデート配信に必要な最小限のデータのみを収集します
  • トラッキングなし: アプリ間や永続的なユーザーのトラッキングは行いません
  • 透明性: このプライバシーポリシーでは、収集するデータを明確に説明しています
  • セキュリティ: すべてのデータ転送は暗号化され、安全に保護されます

Capgo は、以下の主要なデータ保護規制への準拠をサポートするように設計されています:

  • GDPR (一般データ保護規則)
  • CCPA (カリフォルニア州消費者プライバシー法)
  • COPPA (児童オンラインプライバシー保護法)
  • その他適用される地域のプライバシー法
  • この サブプロセッサー一覧 は、Capgoにおける最新の公式情報です。常に最新の状態に保たれており、各プロバイダーの利用目的、処理場所、転送メカニズム、および変更履歴が記載されています。
  • この データ処理契約 (DPA) を確認いただけます。

Capgo は Capacitor のウェブレイヤー(JavaScript、HTML、CSS、静的アセット)のみを更新します。ネイティブバイナリ、ネイティブプラグイン、権限、Entitlements、ストアのメタデータは変更しません。各アプリは個別に審査されるため、Capgo は App Store や Play Store の個別の承認を保証できません。

Live Updates は、ストアの規約と提出済みアプリの範囲内に収まるウェブレイヤーの変更にのみ使用してください。ネイティブ機能や実質的な機能変更には、通常のネイティブリリースを配信してください。以下を確認してください: Apple の App Store Review Guidelines (ガイドライン 2.5.2 を含む)および Google Play の Device and Network Abuse ポリシー リリース前に、アプリについて確認してください。

Capgoが原因でAppleのリモートcode実行が拒否されることはありません。それは不可能です。Capgoは、ネイティブのcode、ダイナミックライブラリ、フレームワーク、またはプラグインをインストールしたり実行したりすることはできず、また以下を呼び出すこともできません: dlopen, dlsym, performSelector:、または method_exchangeImplementations()。codeは、レビュー済みのバイナリに既にコンパイルされているWebViewまたはJavaScriptCoreエンジン内のJavaScript、HTML、CSS、および静的アセットを置き換えるだけです。App Reviewがガイドライン2.5.2またはリモートcodeの実行に言及した場合、その指摘をCapgoのせいにしないでください。レビュー通知を読み、ネイティブプロジェクトや他のSDKに、実行ファイルのロードやプライベートAPIの使用がないか確認してください。過去にCapgoのスプラッシュ画面自動非表示パスにおけるダイナミックリンクに関するレビュー指摘がありましたが、それはライブアップデートではなく、そのネイティブプラグインのバグであり、そのリンクは削除されました。

レビューチームは、しばしば以下を併記します: ガイドライン 2.5.2 と Apple Developer Program ライセンス契約 セクション 3.3.1(B) アプリがApp Review後に動作を変更できると判断された場合、これらが併記されます。両方を理解することで、コンプライアンスに準拠したCapacitor live updateワークフローと、リモートcodeのリスクを切り分けることができます。このセクションでは、Capgoがこれらの公開ルールにどのように適合するかをまとめていますが、法的助言ではありません。FAQ形式の詳細については、以下を参照してください: AppleのリモートcodeルールとCapgoライブアップデート.

Appleが禁止している事項 (ガイドライン 2.5.2)

「Appleが禁止している事項 (ガイドライン 2.5.2)」セクション

App Reviewガイドライン 2.5.2 アプリは、そのバンドル内で自己完結している必要があると定めています。また、「他のアプリを含む、アプリの機能や動作を導入または変更するような code をダウンロード、インストール、または実行してはならない」とも明記されています。

Appleは、以下のような、承認後にネイティブの動作を変更できる仕組みに対してこのルールを適用します:

  • コンパイル済みのネイティブ code、フレームワーク、またはプラグインのダウンロード
  • 実行時のシンボル解決(dlopen, dlsymおよび同様のAPI)
  • プライベートAPIにアクセスするためのObjective-Cメソッドの動的な呼び出し(performSelector:, method_exchangeImplementations()および関連するパターン)
  • レビュー済みの体験を超えてアプリの動作を変更することを目的とした、リモートスクリプトの実行

これらのパターンは、最近の「リモート code 実行」に関するレビューメッセージが対象としているものです。これらは、埋め込みWebView内のHTML、CSS、JavaScriptを置き換えることを指しているわけではありません。

Appleが引き続き許可しているもの(ライセンス契約セクション 3.3.1(B))

「Appleが引き続き許可しているもの(ライセンス契約セクション 3.3.1(B))」という見出し

この Apple Developer Program ライセンス契約 セクション 3.3.1(B) (「実行可能な Code」)は、解釈可能な code の除外規定です。現在の契約文では、アプリケーションは一般的に実行可能な code をダウンロードまたはインストールすることはできません。 ただし、 以下の条件を満たす場合に限り、その解釈可能な code をダウンロードできます:

  1. 意図された目的や広告されている目的と矛盾する機能を提供することで、アプリケーションの主な目的を変更しないこと。
  2. OSの署名、サンドボックス、またはその他のセキュリティ機能をバイパスしないこと、および
  3. App Storeアプリの場合、他のアプリケーションのためのストアやフロントエンドを作成しないこと。

App Storeに提出する Native Build のシェルには WebKit または JavaScriptCore が組み込まれています。Web bundle を OTA で更新することは、リリースが上記の3つの条件を満たしている場合に限り、セクション 3.3.1(B) に基づく解釈可能な code とみなされる可能性があります。 と チーム内で、以下のセクション3.3.1(C)を含む、アプリに適用されるその他のライセンスおよびApp Reviewルールを評価してください。製品の目的を維持することは必要条件ですが、それだけで十分とは限りません。

セクション 3.3.1(C) の Apple Developer Program ライセンス契約 には、Appleによる事前の書面による承認がない限り、またはセクション 3.3.9(A) (アプリ内課金 API)で許可されている場合を除き、アプリケーションは、App Store、Custom App Distribution、またはTestFlight以外の配信メカニズムを通じて、追加の機能や機能を提供、アンロック、または有効化することはできないと記載されています。

Appleが公開しているテキストには、その条項が解釈された各 code OTA bundle とどのように相互作用するかまでは明記されていません。特定の Capgo リリースが3.3.1(C)に抵触するかどうかは、貴社チームおよび法務顧問による法的判断であり、Capgo が決定できることではありません。

ガイドライン4.7が適用される可能性がある場合

「ガイドライン 4.7 が適用されるケース」セクション

では 2025年11月、Appleは明確化しました ガイドライン 4.7 バイナリに埋め込まれていない、HTML5やJavaScriptによるミニアプリ、ミニゲーム、チャットボット、プラグイン、および同様のソフトウェアを提供するアプリが対象です。ソフトウェアの所有権の有無は、4.7の適用を決定するものではありません。重要なのは、広告しているユーザー体験です。アプリ内で複数の異なるソフトウェア体験を検索、起動、または切り替えられる場合、4.7の追加ルール(カタログのインデックス作成、レーティングを超えるコンテンツへの年齢制限、および関連要件)を満たす必要がある可能性があります。

Capgo はアップデートメカニズムです。これ自体がアプリを 4.7 のホストにするわけではありませんが、異なるチャネルに bundle を配信することは可能です。製品がミニアプリプラットフォームやホワイトラベルホストのように動作する場合は、OTA配信に頼る前に、法務担当者と相談して App Store でのポジショニングと開示事項を確認してください。

懸念事項Capgo の動作
実行可能なネイティブ code不可能です。Capgo はネイティブな code をインストールしたり実行したりすることはありません。ネイティブな code の変更には、ストア用の新しいバイナリが必要です。
解釈されるWebアセットJavaScript、HTML、CSS、フォント、画像、その他の静的アセットのみが、アプリ内のWeb bundleを置き換えます。
主な目的チームがスコープを管理します。大幅な新機能のリリースは、OTAではなくレビューを通じて行ってください。
セキュリティBundleは署名されており、エンドツーエンドで暗号化可能です。UpdaterはiOSのサンドボックスや code の署名をバイパスすることはありません。
ストアフロントCapgo channel はアプリにアップデートを配信するものであり、バイナリ内に無関係なサードパーティ製アプリを公開するものではありません。

OTA bundleをリリースする前の実用的なチェックリスト

「OTA bundleをリリースする前の実用的なチェックリスト」というセクション
  • 変更がWebレイヤーに限定されており、Appleがレビューしたアプリの内容と一致していることを確認してください。
  • アップデートによって、Appleの事前の書面による承認、またはライセンス契約セクション3.3.1(C)に基づく許可されたセクション3.3.9(A)の使用なしに、App Store、カスタムアプリ配布、またはTestFlight以外の場所で追加の機能や機能を提供、アンロック、または有効化していないことを確認してください。その制限が、解釈されたcode OTA bundleに適用されるかどうかは、お客様の法的判断によります。
  • 価格設定、購入、および規制対象のフローは、審査済みのネイティブフローまたはストアに準拠したフロー内に維持してください。
  • プラグイン、権限、entitlements、またはネイティブの依存関係を追加する場合は、新しいバイナリをuploadしてください。
  • アプリの更新方法についてレビュアーから質問があった場合は、App ReviewのノートにLive Updateについて記載してください。

Capgoを使用することで、ネイティブリリースのストア審査プロセスを維持しながら、Webレイヤーの修正を数分でデプロイできます。いかなるアップデートツールもAppleの承認を保証することはできません。アプリのAppleガイドラインとライセンス条項を確認し、不明な点は法務担当者に相談してください。

Capgoを使用するアプリ開発者として、以下の事項を行う必要があります:

  • アプリのプライバシーポリシーに適切なプライバシー開示を含める
  • 必要に応じて、live updateサービスの使用についてユーザーに通知する
  • 計画されている各アップデートが、適用される法律およびストアのルールに準拠していることを確認する
  • 必要に応じて、適切な同意メカニズムを実装する

Capgo は Privacy by Design の原則に従っています:

  • サービスの運用に不可欠なデータのみを収集する
  • 個人情報や機密情報の収集を避ける
  • 可能な限り集計済みデータや匿名化データを使用する
  • 収集したデータは明示された目的のみに使用すること
  • 無関係な活動にデータを転用しないこと
  • データ利用に関する明確な境界を維持すること
  • データの収集と利用について明確な情報を提供すること
  • プライバシーポリシーを容易にアクセスでき、理解しやすいものにすること
  • プライバシーに関するドキュメントを定期的に更新すること

Capgoのプライバシー慣行に関する質問や、プライバシーに関する懸念の報告については、以下をご確認ください:

  • プライバシーポリシーの全文はこちら: capgo.app/privacy
  • セキュリティおよびコンプライアンスの状況はこちら: capgo.app/trust
  • サポートチャネルからプライバシーチームへ連絡
  • プライバシー関連の問題は、セキュリティ窓口から報告してください

アプリに Capgo を実装する際は:

  1. 透明性の確保: live update の機能についてユーザーに通知してください
  2. データの最小化: 実際に必要なデータ収集機能のみを有効にしてください
  3. 安全な実装: 統合時にはセキュリティのベストプラクティスに従ってください
  4. 定期的なレビュー: プライバシー慣行を定期的に見直し、ポリシーを更新してください
  5. ユーザーによる制御: アップデートの動作を制御できるオプションの提供を検討してください

これらのプラクティスに従い Capgo のプライバシーへの取り組みを理解することで、ユーザーに安全でプライバシーを尊重した live update 体験を提供できます。

使用している場合 コンプライアンス セキュリティとコンプライアンスの計画を立てるには、以下と連携してください: HIPAA準拠 規制対象のテレメトリ制御については、 暗号化 暗号化の実装詳細について Capgo セキュリティスキャナー Capgo Security Scanner のプロダクトワークフローについて Capgo のセキュリティ Capgo Security の製品ワークフローについて、 Capgo トラストセンター Capgo Trust Center の製品ワークフロー、および 組織のセキュリティ Organization Security の実装詳細について。