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

デバッグ

GitHub

クラウド拒否 code が発生し、より詳しい対処手順が必要な場合は、次を参照してください。 よくあるアップデートの問題.

Capgo のログには、イベントのメタデータが含まれる場合があります。ダッシュボードで snake_case のアクション code を指定してフィルタリングし、メタデータのセルをクリックすると JSON ペイロード全体をコピーできます。メタデータにはエラーメッセージ、ソース URL、行と列、プロセス状態、メモリプレッシャー、プラットフォーム固有の理由などが含まれるため、クラッシュや WebView イベントの調査に特に役立ちます。古いログでは、括弧内にレガシーな camelCase のエイリアスが表示されることがあります。

各セクションのタイトルは、コンソールログテーブルに表示されるアクション code と一致しているので、直接リンクできます。

プランの制限と正常なレスポンス

「プランの制限と正常なレスポンス」セクション

課金、スロットリング、エラー以外の状態に関するバックエンドの拒否。

意味

Capgo が、Google またはクラウドインフラストラクチャからのものと思われるトラフィックを検出しました。ボットのトラフィックが課金対象デバイスとしてカウントされないよう、4時間未満のアップデートは無視されます。

対処方法

これは実際のユーザーには発生しません。通常のネットワークと実機を使用して再試行するか、時間を置いてから再度確認してください。

意味

アプリの設定により、GoogleおよびAppleのデータセンターのIP範囲からのリクエストがブロックされています。この保護は、アップデートの確認、統計、channel-selfリクエストに適用されるため、アプリの設定が正しくても、クラウド上のプローブやプロバイダーのランナーがこのレスポンスを受け取ることがあります。

対処方法

通常のユーザーネットワークに接続された実機から再試行してください。プロバイダー経由のトラフィックが意図的なものである場合は、一時的に無効化してください。 プロバイダーのインフラへのリクエストのブロック アプリの 情報 タブで設定を行い、テスト終了後に再度有効にしてください。新規アプリではこの設定がデフォルトで有効になっていますが、既存のアプリでは設定を変更するまで以前の「無効」設定が維持されます。

意味

組織のプランまたはデバイスの上限に達しました。プランをアップグレードするか、次回の請求サイクルで利用状況がリセットされるまで、デバイスはアップデートを受け取れません。

対処方法

ダッシュボードからプランをアップグレードするか、次回の請求サイクルをお待ちください。

意味

デバイスには、そのチャンネルで利用可能な最新のbundleが既に適用されています。これは正常な状態で、エラーではありません。

意味

短時間にデバイスからアップデートまたはチャンネルのリクエストが過剰に送信されました。

対処方法

renderループ内でのupdate APIの呼び出しを停止してください。呼び出しは setChannel / getChannel ユーザーのアクションからのみ行い、 defaultChannel における capacitor.config.

無効なネイティブバージョンのメタデータによるバックエンドでの拒否。

意味

config 内のネイティブアプリのバージョンが存在しないか、有効な semver ではありません(x.y.z).

対処方法

設定 plugins.CapacitorUpdater.version 有効な semver にするには、次の SemVerテスターで確認した後、ネイティブアプリを再ビルドして再インストールしてください。

プラットフォームとビルドのターゲット設定

「プラットフォームとビルドのターゲット設定」セクション

チャンネルポリシーがプラットフォーム、ビルドタイプ、デバイスクラスをブロックした場合のバックエンドによる拒否。

意味

デバイスはiOSで動作していますが、このチャンネルではiOSのアップデートが無効化されています。

対処方法

誤って設定した場合はチャンネルでiOSを有効にするか、意図的にブロックしている場合はiOSビルドを専用のチャンネルに振り分けてください。

意味

デバイスはAndroidで動作していますが、このチャンネルではAndroidのアップデートが無効化されています。

対処方法

誤って設定した場合は、そのチャンネルでAndroidを有効にしてください。意図的にブロックしている場合は、Androidビルドを専用のチャンネルに振り分けてください。

意味

デバイスはElectronで動作していますが、このチャンネルではElectronのアップデートが無効になっています。

対処方法

誤って設定した場合は、そのチャンネルでElectronを有効にしてください。意図的にブロックしている場合は、Electronビルドを専用のチャンネルに振り分けてください。

意味

デバイスは開発用ビルドですが、このチャンネルでは開発用ビルドがブロックされています。

対処方法

テスト用チャンネルで開発用ビルドを許可するか、このチャンネルをリリース専用に保ち、開発用デバイスを別の場所に移動させてください。

意味

プロダクションビルド: /updatesただし、このチャンネルではプロダクションのアップデートがブロックされています。

対処方法

誤操作の場合は、このチャンネルでプロダクションのアップデートを許可するか、プロダクションビルドを正しいチャンネルにルーティングしてください。

意味

このチャンネルは実機をブロックしているため、実機またはタブレットがブロックされました。

対処方法

誤操作の場合は、実機でのアップデートを有効にするか、制限を維持したまま実機を別のチャンネルにルーティングしてください。

意味

デバイスはエミュレータですが、このチャンネルではエミュレータへのアップデートが禁止されています。

対処方法

テスト用チャンネルでエミュレータへのアップデートを有効にするか、このチャンネルはエミュレータをブロックしたまま、検証用に別のチャンネルを使用してください。

semverまたはメタデータルールによって対象のbundleがブロックされた際の、バックエンドによる拒否。

意味

チャンネルの互換性ポリシーにより、自動アップデートが無効になっています。メタデータには以下が含まれます: auto_update 次のような一致するルールが含まれています: major, minor, patch, metadata、または none.

対処方法

意図したロールアウトを許可するために、チャンネルの自動アップデートポリシーを変更してください。

意味

このチャンネルにはデバイスのベースラインより古いbundleがあり、ネイティブバージョンを下回るデバイスへのアップデート送信がブロックされます。

対処方法

ネイティブのベースラインと同等以上のbundleを公開するか、チャンネルのunder-native保護を無効にしてください。

意味

このチャンネルでは以下が必要です: min_update_version、ただしデバイスのネイティブバージョンはその閾値を下回っています。

対処方法

設定 min_update_version より新しいネイティブバージョンからのターゲットバンドルまたはリリースに対して。

意味

このチャネルはメジャーバージョンのジャンプをブロックします。例: 1.x.x まで 2.x.x.

対処方法

チャネル戦略をメジャーリリースの計画に合わせるか、このトラックでメジャージャンプを許可してください。詳細は よくあるアップデートの問題.

意味

このチャネルは、デバイスのネイティブベースラインを基準にしたマイナーバージョンのジャンプをブロックします(version_build)、例: 1.2.3 まで 1.3.0.

対処方法

マイナーアップデートの展開計画に合わせてチャンネル戦略を調整するか、このトラックでマイナーバージョンのジャンプを許可します。

意味

このチャンネルは、同じプレフィックスを維持したままパッチレベルの変更をブロックします。 MAJOR.MINOR.PATCH 許可されるのはサフィックスの変更のみです。

対処方法

リリースサイクルをチャンネルポリシーに合わせるか、このトラックでパッチバージョンのジャンプを許可します。

チャンネル設定の不足または不整合によるバックエンドからの拒否。

意味

デバイスが、デバイスによる自己割り当てを許可していないプライベートチャネル(allow_device_self_set is false)に紐付けようとしましたが、そのチャネルは公開されていません。

対処方法

有効にする allow_device_self_set チャネルの設定を変更するか、デバイスを公開チャネルまたは許可されたチャネルに切り替えてください。

意味

チャネルは使用されていますが、 disable_auto_update: "version_number" バンドルが min_update_version nullのため、Capgo はどのデバイスをアップデートすべきか判断できません。

対処方法

そのルールの不足している設定を補完するか、よりシンプルな自動更新モードに切り替えてください。

意味

デフォルトのチャンネルが設定されておらず、デバイスにチャンネルの上書き設定もありません。

対処方法

ダッシュボードでデフォルトのチャンネルを設定するか、 defaultChannel ビルド時に設定してください。

Capgo がバンドルの配信または復号ができない場合に発生するバックエンドの拒否エラー。

意味

Capgo で有効な署名付きダウンロードURLの生成に失敗しました。マニフェストのフォールバックも利用できません。

対処方法

bundle を再アップロードし、manifest を再生成した上で、R2 または public bundle の設定を確認してください。

意味

チャンネルに割り当てられた bundle にダウンロード可能なコンテンツがありません: external_url、 r2_path、組み込みバージョンではなく、manifest エントリも存在しません。

対処方法

バージョンを再ビルドして再アップロードし、bundle に実際のファイル内容が含まれていることを確認してください。

意味

デバイスの暗号化公開鍵が、bundleの暗号化に使用された鍵と一致しません。メタデータには以下が含まれる可能性があります: device_key_id, bundle_key_idや version.

対処方法

コンソールでデバイスとbundleのキーIDを比較してください。同じキーと同じ CLI/plugin バージョンで公開してください。

アプリ設定とレガシークライアント

「アプリ設定とレガシークライアント」セクション

アプリ設定やサポートされていないupdaterバージョンによるバックエンドからの拒否。

意味

アプリからカスタムデバイスIDが送信されましたが、このアプリはカスタムIDを受け付けないため、そのIDは無視されます。

対処方法

カスタムIDの送信を停止するか、ワークフローで必要な場合のみ有効にしてください。

意味

server.url Capacitor の設定で指定されており、WebViewがローカルのbundleファイルではなくリモートURLを読み込みます。Capgo のLive Updateにはローカルファイルが必要なため、 server.url 本番環境での使用は推奨されません。

対処方法

本番ビルドでは削除またはクリアし、 server.url アップデートのペイロードをローカルに保持してください。この code は、バックエンドによる拒否、またはデバイス側のステータスとして表示されます。

意味

updaterプラグインがv4であり、バックエンドがすでにサポートしていない状態です。

対処方法

plugin と CLI を Capacitor v5+ を使用して v5 以上(v8 推奨)にアップグレードし、再ビルドして bundle メタデータを再公開してください。

Updateのライフサイクル

「Update lifecycle」セクション

通常のアップデートフロー、アクティベーション、およびロールバックにおけるデバイス側のイベント。

意味

stats pipeline の検証に使用される内部テストアクション。

意味

Capgo が新しいバージョンのダウンロード情報をデバイスに送信しました。

意味

デバイス上でbundleが有効化されました。

意味

デバイス上でのbundleの有効化に失敗しました。

対処方法

次を使用してネイティブログを確認してください: npx @capgo/cli@latest app debug bundleの整合性、パス、および notifyAppReady フローを検証します。

意味

デバイスが組み込みのbundleにリセットされました。

意味

デバイス上でbundleが1つ削除されました。

ダウンロードとインストールの失敗

「ダウンロードとインストールの失敗」セクション

ダウンロードの進捗、アーカイブ検証、インストールエラーに関するデバイス側のイベント。

意味

ダウンロードシーケンスが進捗0%で開始されました。

意味

新しいbundleがダウンロードされました — 進捗は10%です。

意味

新しいbundleがダウンロードされました — 進捗は20%です。

意味

新しいbundleがダウンロードされました — 進捗は30%です。

意味

新しいbundleがダウンロードされました — 進捗は40%です。

意味

新しいbundleがダウンロードされました — 進捗は50%です。

意味

新しいbundleがダウンロードされました — 進捗は60%です。

意味

新しいbundleがダウンロードされました — 進捗は70%です。

意味

新しいbundleがダウンロードされました — 進捗は80%です。

意味

新しいbundleがダウンロードされました — 進捗は90%です。

意味

bundleのダウンロードが正常に完了しました。

意味

デバイスがアップデートマニフェストのダウンロードを開始しました。

意味

デバイスがアップデートマニフェストのダウンロードを完了しました。

意味

デバイスがbundleアーカイブのダウンロードを開始しました。

意味

デバイスのbundleアーカイブのダウンロードが完了しました。

意味

マニフェストのエントリ1つのダウンロードに失敗しました。 version_name を使用 version:fileName を使用してアセットを特定します。

対処方法

不足している、またはブロックされているアセットを修正し、マニフェストを再生成してbundleを再アップロードしてください。

意味

マニフェストファイルのチェックサム検証に失敗しました。

対処方法

最新の CLI バージョンで bundle を再アップロードし、manifest のチェックサムを確認してください。

意味

manifest ファイルの Brotli 解凍に失敗しました。

対処方法

圧縮設定を確認し、対象のアセットを再アップロードしてください。

意味

bundle のダウンロードに失敗しました。

対処方法

ネットワーク接続、署名付き URL の期限切れ、CDN への到達性、およびデバイスのストレージ容量を確認してください。

意味

Bundleはインストールされましたが、アプリからの呼び出しが行われませんでした notifyAppReadyそのため、Capgo がロールバックされました。

対処方法

呼び出す notifyAppReady() アプリのブートストラップ完了後。Nativeログのテキスト notifyAppReady was not called, roll back current bundle この code に対応しています。

意味

ダウンロードしたBundleのチェックサム検証に失敗しました。主な原因:古い CLI のアップロードによるCRC32とSHA256の不一致、または古いプラグインで復号エラーがチェックサムエラーとして表示される暗号化キーの不一致。

対処方法

最新の CLI/plugin (SHA256) を使用して再アップロードしてください。暗号化を使用している場合は、アプリの公開鍵がアップロード時の鍵と一致しているか確認してください。または、詳細なエラーを確認するために plugin 8.3.0 以降にアップグレードしてください。 keyMismatch エラー。

意味

ダウンロードした bundle の復号に失敗しました。

対処方法

暗号化キーを確認し、一致する鍵ペアを使用して bundle を再アップロードしてください。

意味

zip 内に不正な Windows スタイルのパスが含まれています。

対処方法

Unix パスで bundle を再ビルドするか、アップロード前にアーカイブ内のパスをサニタイズしてください。

意味

zip内のファイルパスが正規化されていません。

対処方法

upload前にアーカイブのパス生成を修正してください。

意味

zip内に無効なディレクトリパスが含まれています。

対処方法

upload前にアーカイブの構造を修正してください。

意味

デバイスでダウンロードしたbundleの解凍に失敗しました。

対処方法

アーカイブの整合性と、サポートされている圧縮形式を確認してください。

意味

デバイスのメモリ不足により、ダウンロードに失敗しました。

対処方法

bundleサイズを小さくするか、空きメモリの多いデバイスで再試行してください。

アプリのヘルス状態とWebViewイベント

「App health and WebView events」セクション

デバイス側のクラッシュ、メモリ、WebViewの診断情報です。必ずダッシュボードでmetadata JSONを確認してください。

意味

アプリがバックグラウンドに移行しました。

意味

アプリがフォアグラウンドに移行しました。

意味

JavaScriptまたはCapacitorレイヤーのクラッシュ。メタデータには、メッセージ、スタック、ソース、およびアクティブなbundleのコンテキストが含まれる場合があります。

対処方法

メタデータとネイティブログを確認してください。JSとネイティブのエラーレポート(Sentryなど)を組み合わせることで、エラーが発生しているcodeパスを特定できます。

意味

Nativeプラットフォームのクラッシュ。メタデータには、プラットフォーム、原因、スタック、プロセスの詳細が含まれる場合があります。

対処方法

XcodeまたはLogcatのクラッシュログを使用し、メタデータのアクティブなbundleと突き合わせてください。

意味

AndroidのApplication Not Responding(ANR)イベント。

対処方法

LogcatでANRトレースを調査し、アップデート後のメインスレッドのブロッキング処理を削減してください。

意味

メモリプレッシャーが発生した後、OSがアプリを強制終了しました。

対処方法

アップデート適用後のメモリ使用量を削減し、空きメモリのシグナルを示すメタデータを調査します。

意味

リソースの過剰使用により、OSによってアプリが強制終了されました。

対処方法

メタデータを調査して、リソースの種類やプラットフォーム側の理由を確認します。

意味

通常のランタイムが準備できる前に、Updaterまたは起動に失敗しました。

対処方法

メタデータを調査して、失敗したステップとエラーメッセージを確認します。

意味

iOSのメモリ警告。

対処方法

メタデータからメモリ使用状況を確認し、アップデート後のピーク使用量を削減します。

意味

WebView内での未キャッチのJavaScriptエラー。メタデータには、メッセージ、ソースURL、行、列、スタックトレースが含まれます。

対処方法

JSおよびネイティブ層にエラーレポート機能を導入し、本番環境でエラーが発生した正確な行を特定できるようにします。

意味

WebView内での未処理のPromise拒否(Unhandled promise rejection)。

対処方法

JSおよびネイティブのエラーレポート機能により、非同期の失敗をキャプチャします。

意味

WebViewのリソースの読み込みに失敗しました。

対処方法

メタデータのURLとステータス詳細を使用して、破損したアセットやネットワークルールを修正してください。

意味

コンテンツセキュリティポリシー(CSP)によってリソースがブロックされました。

対処方法

メタデータのディレクティブとブロックされたURIの詳細を使用して、CSPを調整してください。

意味

前回のWebViewセッションが正常に終了していません。アップデート後のクラッシュループの可能性があります。

対処方法

再起動前後のクラッシュおよびWebViewエラーイベントと照らし合わせて確認してください。

意味

Android WebViewのレンダラープロセスが終了しました。

対処方法

メタデータとネイティブログからレンダラーのクラッシュ信号を調査してください。

意味

iOS WebViewのコンテンツプロセスが終了しました。

対処方法

メタデータから、現在アクティブなbundleとページのURLを確認します。

アップデートの挙動と、OS、ネイティブバージョン、またはチャネルの変更を紐付けるのに役立つデバイス側のコンテキストイベントです。

意味

チェックの間にデバイスのOSバージョンが変更されました。

意味

ネイティブアプリのストアバージョンが変更されました。これにより、ネイティブ側の変更とweb bundleの変更を区別できます。

意味

デバイスが現在のチャンネルを問い合わせました。

意味

デバイスにチャンネルが正常に設定されました。

意味

アプリがアンインストールされたか、Capgo データが削除されました。

  • SUCCESS: bundle のインストールが完了しました
  • ERROR: インストールまたはダウンロードに失敗しました
  • PENDING: ダウンロード完了、リリース待ち
  • DELETED: Bundleは削除されましたが、統計には表示されています
  • DOWNLOADING: 現在Bundleをダウンロード中

Capgo cloudユーザー向けにデバッグコマンドが用意されています。

ターミナル
npx @capgo/cli@latest app debug

これにより、アプリ内で発生しているすべてのイベントを確認でき、アップデートが実行されない場合の解決策を見つけることができます。

Xcode でログを確認する方法

Android Studio でログを確認する方法

  • Failed to download from に対応する download_fail
  • notifyAppReady was not called, roll back current bundle に対応する update_fail

デバイス上でダウンロード済みbundleを見つける

「デバイス上のダウンロード済みbundleの探し方」セクション

iOSでデバッグするには、アプリをコンピュータにダンプする必要があります。手順は以下の通りです:

Xcodeには、iOSデバイス上の開発者向けインストールアプリのファイルシステムを検査する機能が組み込まれています。 Devices and Simulatorsオプションが表示されているXcodeのWindowメニュー

手順:

  • デバイスをMacに接続し、Xcodeのメニューバーから Window > Devices を選択します。
  • 左ペインのDevicesセクションから、対象のデバイスを選択します。
  • そのデバイスにインストールされている開発者向けアプリの一覧が表示されます。
  • 検査したいアプリを選択し、画面下部付近にある3つのドット(...)アイコンをクリックします。
  • スナップショットをダウンロードして、現在のファイルシステムを確認できます。

アプリコンテナのダウンロードオプションが表示されたXcodeのDevicesパネル

「Download Container…」を選択すると、ファイルシステムのスナップショットが .xcappdata ファイルとしてダウンロード・エクスポートされ、中身を閲覧できます。

「パッケージの内容を表示」コンテキストメニュー付きのダウンロード済みxcappdataファイル

このファイルを右クリックし、「パッケージの内容を表示」を選択してフォルダを開きます。

App Dataフォルダを開くと、Documents、Library、tmpなどのフォルダが見えるはずです。

DocumentsフォルダとLibraryフォルダが表示されたiOSアプリコンテナのフォルダ構造

すると、2つのフォルダ内にバージョンが見つかります:

library/NoCloud/ionic_built_snapshots アプリの再起動後に必要です

と documents/versions ホットリロード用

Androidでデバッグするには、Android Studioからデバイスにアクセスする必要があります:

  • View > Tool Windows > Device File Explorer をクリックするか、ツールウィンドウバーにある Device File Explorer ボタンをクリックして、Device File Explorer を開きます。
  • ドロップダウンリストからデバイスを選択します。
  • パスを開きます: data/data/APP_NAME/ 「どこで」 APP_NAME はアプリIDです。

Android Studio の Device File Explorer でアプリのデータディレクトリを表示している画面

次に、以下の versions フォルダを探して、すべてのバージョンを確認します

デバッグの続きを読む

「デバッグから次へ」セクション

使用している場合 デバッグ ネイティブプラグインの作業を計画するには、次と連携してください: @capgo/capacitor-updater を使用する 「@capgo/capacitor-updater を使用する」のネイティブ機能については、 Capgo プラグインディレクトリ Capgo プラグインディレクトリのプロダクトワークフローについては、 Capgo による Capacitor プラグイン Capgo による Capacitor プラグインの実装詳細については、 プラグインの追加または更新 プラグインの追加または更新における実装詳細については、および Ionic Enterprise プラグインの代替案 Ionic Enterprise プラグインの代替案におけるプロダクトワークフローについては。