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

デバッグ

GitHub

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

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

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

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

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

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

意味

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

対処方法

実際のユーザーでは無視してください。通常のネットワークや実機で再試行するか、しばらく待ってから再度確認してください。

意味

アプリは、既知の Google および Apple のデータセンター IP 範囲からのリクエストをブロックするように設定されています。この保護は、更新チェック、統計、およびチャネル自己リクエストに適用されるため、アプリの設定がそれ以外に有効であっても、クラウドホストのプロブやプロバイダーランナーがこのレスポンスを受信する可能性があります。

対処方法

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

意味

組織がプランまたはデバイスの上限に達しました。アップグレードするか、次の請求サイクルで使用量がリセットされるまで、このデバイスには更新が配信されません。

対処方法

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

意味

そのデバイスは、そのチャネルで利用可能な最新のバンドルをすでに保持しています。これは正常な状態であり、失敗ではありません。

意味

デバイスが短時間に更新リクエストまたはチャネルリクエストを送信しすぎました。

対処方法

レンダリングループ内で更新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 またはメタデータのルールが対象バンドルをブロックした場合のバックエンドによる拒否。

意味

チャネルの互換性ポリシーにより自動更新が無効になっています。メタデータには 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 が false)に自己関連付けようとし、かつそのチャンネルがパブリックでない場合。

対処方法

有効にする allow_device_self_set チャンネル上で、またはデバイスをパブリックまたは許可されたチャンネルに切り替えてください。

意味

チャンネルは次を使用しています disable_auto_update: "version_number" しかしバンドル min_update_version が null であるため、Capgo はどのデバイスを更新すべきか判断できません。

対処方法

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

意味

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

対処方法

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

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

意味

Capgo で有効な署名付きダウンロードURLを生成できず、manifest のフォールバックも利用できませんでした。

対処方法

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はローカルバンドルファイルではなくリモートURLを読み込みます。 Capgo のライブアップデートにはローカルファイルが必要であり、 server.url 本番環境での使用は推奨されません。

対処方法

削除またはクリア server.url 本番ビルドでは削除し、更新ペイロードをローカルに保ちます。この code はバックエンドの拒否や、デバイス側の統計として表示されることがあります。

意味

updater プラグインが v4 であり、バックエンドがもう受け付けません。

対処方法

プラグインと CLI を v5 以上に(v8 推奨)、Capacitor も v5 以上にアップグレードし、再ビルドしてバンドルメタデータを再公開してください。

Updateのライフサイクル

セクション「Update lifecycle」

通常の更新フロー、アクティベーション、ロールバックに関するデバイス側イベント。

意味

統計パイプラインを検証するために使用される内部テストアクション。

意味

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

意味

デバイス上でバンドルがアクティベートされました。

意味

デバイス上でバンドルのアクティベーションに失敗しました。

対処方法

ネイティブログを確認するには npx @capgo/cli@latest app debug でバンドルの完全性、パス、および notifyAppReady フローを検証します。

意味

デバイスは組み込みバンドルにリセットされました。

意味

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

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

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

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

意味

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

意味

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

意味

新しいバンドルがダウンロードされました — 進捗は20%と表示されています。

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

意味

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

対処方法

欠落またはブロックされたアセットを修正し、マニフェストを再生成して、バンドルを再アップロードしてください。

意味

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

対処方法

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

意味

マニフェストファイルのBrotli展開に失敗しました。

対処方法

圧縮設定を確認し、影響を受けたアセットを再アップロードしてください。

意味

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

対処方法

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

意味

バンドルはインストールされましたが、アプリが notifyAppReadyを呼び出さなかったため、Capgoがロールバックしました。

対処方法

呼び出す notifyAppReady() アプリのブートストラップが完了した後のネイティブログテキスト notifyAppReady was not called, roll back current bundle この code にマッピングされます。

意味

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

対処方法

最新の CLI/プラグイン (SHA256) で再アップロードしてください。暗号化を使用している場合は、アプリの公開鍵がアップロードキーと一致していることを確認するか、明示的な keyMismatch errors.

意味

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

対処方法

暗号化キーを確認し、対応するキーペアで bundle を再アップロードしてください。

意味

zip に無効な Windows 形式のパスが含まれています。

対処方法

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

意味

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

対処方法

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

意味

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

対処方法

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

意味

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

対処方法

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

意味

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

対処方法

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

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

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

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

意味

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

意味

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

意味

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

対処方法

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

意味

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

対処方法

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

意味

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

対処方法

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

意味

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

対処方法

Live Update の有効化後にメモリ使用量を削減し、利用可能なメモリを示すメタデータを検査します。

意味

OS がリソースの過剰使用を理由にアプリを終了しました。

対処方法

リソースタイプまたはプラットフォーム理由のメタデータを検査します。

意味

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

対処方法

失敗したステップとエラーメッセージのメタデータを検査します。

意味

iOSのメモリ警告。

対処方法

メタデータ内のメモリコンテキストを検査し、更新後のピーク使用量を削減します。

意味

WebView内でキャッチされないJavaScriptエラーが発生しました。メタデータには、メッセージ、ソースURL、行、列、スタックトレースが含まれる場合があります。

対処方法

JS層とネイティブ層にエラーレポート機能を導入し、本番環境で失敗した正確な行をキャプチャします。

意味

WebView内で未処理のPromiseリジェクションが発生しました。

対処方法

JSとネイティブのエラーレポート機能で非同期の失敗をキャプチャします。

意味

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

対処方法

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

意味

Content Security Policy によってリソースがブロックされました。

対処方法

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

意味

以前の WebView セッションが正常にシャットダウンされませんでした。これは、更新後のクラッシュループを示唆する可能性があります。

対処方法

再起動前後のクラッシュや WebView エラーイベントと相関付けしてください。

意味

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

対処方法

メタデータとネイティブログからレンダラーのクラッシュシグナルを確認してください。

意味

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

対処方法

メタデータからアクティブなバンドルとページ URL を確認してください。

起動とナビゲーションのテレメトリ

「起動とナビゲーションのテレメトリ」セクション

これらのタイミングイベントはアプリのライフサイクルを説明します。すべての機能が正常に動作することを保証するものではありません。

意味

アプリが起動の計測を開始しました。これは通常のライフサイクルイベントです。

意味

アプリが準備完了を報告しました。タイミングメタデータは、バージョン間の起動時間の比較に役立ちます。これは通常のライフサイクルイベントです。

意味

アプリが起動計測ウィンドウ内に準備完了を報告しませんでした。

対処方法

起動エラーとデバイスのタイムラインを確認します。起動が readiness 呼び出しに到達していることを確認し、 notifyAppReady() が bootstrap に成功した後に呼び出されます。タイムアウト設定を変更する前に、前回の bundle とタイミングや失敗箇所を比較してください。

意味

WebView が DOM の読み込み完了を報告しました。これは通常のタイミングイベントであり、すべてのリソースやアプリケーション機能が準備完了したことを示すものではありません。

意味

WebView がページの読み込みを報告しました。これは通常のタイミングイベントです。読み込みが遅い場合の調査では、バージョン間で所要時間のメタデータを比較してください。

意味

アプリがナビゲーションイベントを報告しました。これは通常のテレメトリです。アプリが提供する場合、ルートと所要時間のメタデータにより画面ごとの比較が可能です。

意味

bundleが後日のアプリ起動時に有効化されるようスケジュールされました。スケジュール設定は正常な動作であり、bundleがすでに有効化されたことを意味しません。

意味

選択されたチャネルが一時停止されています。サーバーは更新を送信せず、デバイスは現在のbundleを維持します。これは意図的なリリースポリシーである可能性があります。

対処方法

チャネルが一時停止された理由と、再開が安全かどうかを確認してください。このイベントを無視するためにロールアウトを自動的に再開しないでください。

意味

デバイスがダウンロードしたbundleの最終処理を完了できませんでした。

対処方法

根本的なファイルシステムエラーまたは検証エラーについて、メタデータとネイティブログを確認してください。再試行する前に、利用可能なストレージとアップロード済みアーカイブを確認してください。

意味

マニフェストファイルのパスが検証に失敗したか、更新中に使用できませんでした。

対処方法

ネイティブログで失敗したパスを確認し、バンドルのファイル構成を修正して再アップロードしてください。パスの検証をバイパスしないでください。

意味

このダウンロードには、アップデーターに必要なチェックサムメタデータが欠落しています。

対処方法

現在の CLI を使用してバンドルを再アップロードし、チェックサムメタデータが存在することを確認してください。エラーを回避するために整合性チェックを無効にしないでください。

意味

デバイスにアップデートに必要なストレージ容量がありません。

対処方法

デバイスのストレージを空け、可能であればバンドルサイズを縮小してから、影響を受けるテストデバイスで再試行してください。これはチャネルのバージョンポリシーを変更しても解決しません。

意味

アップデートチェックに失敗しました。このイベントだけでは、原因が接続性、サーバーの可用性、特定のレスポンス拒否のいずれであるかを特定できません。

対処方法

レスポンスのメタデータと関連するネイティブログを確認してください。接続状況と設定済みのアップデートURLを確認し、設定を変更する前に、特定のバックエンドエラーがないか「Common Update Problems」で調べてください。

環境とチャネルのコンテキスト

セクション「環境とチャネルのコンテキスト」

OS、ネイティブバージョン、またはチャネルの変更と更新動作を相関させるのに役立つ、デバイス側のコンテキストイベント。

意味

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

意味

ネイティブアプリのストアバージョンが変更されました。ネイティブ変更とWebバンドル変更を区別するのに役立ちます。

意味

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

意味

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

意味

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

  • SUCCESS: bundle のインストールが完了しました
  • ERROR: インストールまたはダウンロードに失敗
  • PENDING: ダウンロード完了、リリース待ち
  • DELETED: Bundle が削除済み、統計用に引き続き表示
  • DOWNLOADING: Bundle のダウンロード中

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

ターミナル
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を見つける

セクション「デバイス上のダウンロード済みバンドルの特定」

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

Xcodeには、iOSデバイスにインストールされた開発者用アプリのファイルシステムをインスペクトする組み込み機能があります。 Xcodeのウィンドウメニューに「Devices and Simulators」オプションが表示されています

以下の手順で実行します:

  • デバイスを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 フォルダを探して、すべてのバージョンを確認します

iOS本番環境のクラッシュログを理解する

セクション「iOSの本番環境クラッシュログの理解」

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