Skip to content

デバッグ

GitHub

クラウド拒否の場合code、より深い修復ガイドウォークスルーが必要な場合は、 一般的な更新問題.

Capgoログにはイベントのメタデータが含まれています。ダッシュボードで、スネークケースのアクションcodeでフィルタリングし、メタデータセルをクリックしてフルJSONペイロードをコピーしてください。メタデータは、クラッシュやWebViewイベントの場合に特に役立ちます。エラーメッセージ、ソースURL、行番号、列番号、プロセス状態、メモリ圧力、またはプラットフォーム固有の理由が含まれる可能性があります。古いログは、括弧内にリストされているレガシーキャメルケースのエイリアスを表示することができます。

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

請求、スロットリング、またはエラー以外の状態に関連するバックエンドの拒否

これは何を意味する?

CapgoはGoogleまたはクラウドインフラストラクチャから見えるように見えるトラフィックを検出しました。4時間未満の更新は無視されるため、BOTトラフィックは請求可能なデバイスとしてカウントされません。

何をする?

実ユーザーには無視してください。正常なネットワークと実機からリトライするか、後で再度確認するかしてください。

これは何を意味する?

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

何をする?

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

これは何を意味しますか?

デバイスは、チャンネルに対して最新のバンドルが利用可能です。この状態は正常な状態であり、エラーではありません。

これは何を意味しますか?

デバイスは短い期間内に多数のアップデートまたはチャンネル要求を送信しました。

何をしてください?

レンダリングループ内でアップデートAPIを呼び続けるのをやめましょう。ユーザーアクションからのみ呼び出し、 setChannel / getChannel バージョン形式 defaultChannel __CAPGO_KEEP_0__ capacitor.config.

__CAPGO_KEEP_0__

バージョン形式

無効なネイティブ バージョン メタデータにより、バックエンドが拒否される。

これは何を意味しますか。

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

何をするべきですか。

有効な semver に設定し、 plugins.CapacitorUpdater.version SemVer テスター で検証し、 ネイティブ アプリを再構築して再インストールする。プラットフォームとビルドのターゲット

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

プラットフォーム、ビルドタイプ、またはデバイスクラスがブロックされている場合のバックエンド拒否

これは何を意味するか

このチャンネルではiOSの更新が無効になっているため、デバイスはiOSを実行しています。

何をするか

このことが間違ってしまった場合は、iOSをチャンネルに有効化してください。意図的にブロックした場合は、iOSビルドを特定のチャンネルにルーティングしてください。

これは何を意味するか

このチャンネルではAndroidの更新が無効になっているため、デバイスはAndroidを実行しています。

何をするか

このことが間違ってしまった場合は、Androidをチャンネルに有効化してください。意図的にブロックした場合は、Androidビルドを特定のチャンネルにルーティングしてください。

これは何を意味するか

このチャネルでは、デバイスはElectronを実行していますが、Electronの更新はこのチャネルでは有効ではありません。

何をするか

このことが間違いであれば、Electronをこのチャネルで有効にし、意図的にブロックする場合は、Electronのビルドを特定のチャネルにルーティングするかどうかを確認してください。

これは何を意味するか

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

何をするか

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

これは何を意味するか

このチャネルでは、リリース用ビルドがブロックされています /updates, 但プロダクションの更新はこのチャネルでブロックされています。

何をするか

このチャネルでプロダクションの更新を許可する場合は誤ってしまった場合、またはプロダクションのビルドを正しいチャネルにルーティングする場合はどうしますか。

何を意味するか

実際のスマートフォンまたはタブレットがブロックされています。なぜなら、このチャネルでは実際のデバイスをブロックしているからです。

何をするか

誤ってしまった場合は実機の更新を許可する、または制限を維持して実機を別のチャネルにルーティングする

何を意味するか

このデバイスはエミュレータですが、このチャネルではエミュレータの更新をブロックしています。

何をするか

__CAPGO_KEEP_0__のテストチャネルでエミュレータの更新を有効にし、またはエミュレータをブロックし、別のチャネルでエミュレータの検証を実行します。

__CAPGO_KEEP_0__の自動更新の互換性のルール

__CAPGO_KEEP_0__の自動更新の互換性のルール

__CAPGO_KEEP_0__のバックエンド拒否

__CAPGO_KEEP_0__の意味

__CAPGO_KEEP_0__はチャネル互換性ポリシーによって自動更新が無効になっています。メタデータには auto_update __CAPGO_KEEP_0__のルール、または major, minor, patch, metadata__CAPGO_KEEP_0__のルールを実行します。 none.

__CAPGO_KEEP_0__のチャネル自動更新ポリシーを変更して、実際のロールアウトを許可します。

__CAPGO_KEEP_0__の自動更新の無効化のセクションのタイトル

What it means

チャンネルは、デバイスのベースラインよりも古いバンドルを持っており、ネイティブ版のバージョン下でアップデートをブロックしています。

What to do

ネイティブベースライン以上のバンドルを公開するか、チャンネルでネイティブ保護を無効にします。

disableAutoUpdateMetadata

disableAutoUpdateMetadata

What it means

チャンネルは min_update_versionを要求していますが、デバイスのネイティブ版のバージョンはその閾値以下です。

What to do

min_update_version に設定します。

disableAutoUpdateToMajor

disableAutoUpdateToMajor

__CAPGO_KEEP_0__の意味

__CAPGO_KEEP_1__の場合、メジャーバージョンジャンプをブロックします。例えば 1.x.x __CAPGO_KEEP_2__ 2.x.x.

__CAPGO_KEEP_0__の対処法

__CAPGO_KEEP_3__ セクションのタイトル “disableAutoUpdateToMinor”.

disableAutoUpdateToMinor

__CAPGO_KEEP_0__の意味

__CAPGO_KEEP_1__の場合、デバイスのネイティブベースラインと比較したマイナーバージョンジャンプをブロックします。例えば

__CAPGO_KEEP_2__version_build__CAPGO_KEEP_0__の対処法 1.2.3 __CAPGO_KEEP_4__ 1.3.0.

__CAPGO_KEEP_5__

チャンネル戦略をマイナーリロール計画と合わせたり、またはこのトラックにマイナージャンプを許可したりします。

これは何を意味しますか

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

リリースカレンダーをチャンネルポリシーと合わせたり、またはこのトラックにパッチジャンプを許可したりします。

チャンネル設定

タイトル:「cannotUpdateViaPrivateChannel」

cannotUpdateViaPrivateChannel

これは何を意味しますか

タイトル:「cannotUpdateViaPrivateChannel」

デバイスは、デバイスの自己割り当てを許可しないプライベートチャンネルと自己割り当てを許可しないチャンネル (allow_device_self_set is false) とチャンネルがパブリックではないため、自己割り当てを試みました。

何をするか

許可する allow_device_self_set チャンネルまたはデバイスをパブリックまたは許可されたチャンネルに切り替える

何が意味するか

チャンネルは disable_auto_update: "version_number" しかし、バンドル min_update_version はnullなので、Capgo はどのデバイスがアップデートするべきか決定できません。

何をするか

そのルールの欠落した設定を埋めるか、シンプルな自動アップデートモードに切り替えるか。

意味

デフォルトのチャネルが設定されていません。デバイスにはチャネルオーバーライドもありません。

対処法

デフォルトのチャネルをダッシュボードで設定するか、ビルドで defaultChannel バンドル配信と暗号化

Backend refusals when Capgo cannot serve or decrypt the bundle.

cannotGetBundle

意味

__CAPGO_KEEP_0__が有効な署名付きダウンロードURLを生成できず、メニューのフォールバックも利用できなかった

Capgo failed to generate a valid signed download URL and no manifest fallback was available.

何をするか

バンドルを再アップロードし、メタデータを再生成し、R2またはパブリックバンドル設定を確認する。

何を意味するか

チャンネルに割り当てられたバンドルにはダウンロード可能なコンテンツがない: なし external_urlなし r2_path、バンドル内のファイルが存在しないバージョン、そしてメタデータエントリもない。

何をするか

バージョンを再構築し、再アップロードし、バンドルが実際のファイルコンテンツを持っていることを確認する。

何を意味するか

デバイスの暗号化パブリックキーがバンドルを暗号化するために使用されたキーと一致しない。メタデータには暗号化キーが含まれることがある。 device_key_id, bundle_key_idversion.

アプリの設定

コンソールでデバイスとバンドルキーIDを比較します。同じキーとCLI/プラグインのバージョンを使用して公開します。

アプリの設定またはアップデーターのバージョンがサポートされていないため、サーバーがリクエストを拒否します。

これは何を意味しますか

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

何をしますか

カスタムIDを送信を停止するか、カスタムIDを送信する必要があるワークフローが必要な場合にのみカスタムIDを有効にする必要があります。

何が意味するか

server.url is set in Capacitor config, so the WebView loads a remote URL instead of local bundle files. Capgo live updates require local files and server.url __CAPGO_KEEP_1__ライブ更新はローカルファイルが必要であり

生産環境では推奨されない。

何をするか server.url 生産用ビルドの場合、または更新パケットをローカルに保つには、codeを削除またはクリアする。

「backend_refusal」セクション

何が意味するか

アップデートプラグインはv4であり、バックエンドはこれを認識しない。

Upgrade plugin and CLI to v5+ (prefer v8) with Capacitor v5+, rebuild, and republish bundle metadata.

プラグインをアップグレードし、__CAPGO_KEEP_0__をv5+ (v8を推奨) にし、__CAPGO_KEEP_1__ v5+、再構築、再公開するbundleメタデータ

アップデート ライフサイクル

正常なアップデートフロー、有効化、ロールバック用のデバイス側イベント

ping

ping

何が起こるか

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

get

get

何が起こるか

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

set

set

何が起こるか

バンドルがデバイスで有効化された

set_fail

set_fail

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__

__CAPGO_KEEP_3__ npx @capgo/cli@latest app debug __CAPGO_KEEP_4__ notifyAppReady __CAPGO_KEEP_5__

__CAPGO_KEEP_7__

__CAPGO_KEEP_8__

__CAPGO_KEEP_10__

__CAPGO_KEEP_11__

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

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

デバイス側のイベント: ダウンロードの進行状況、アーカイブの検証、インストールのエラー

意味

ダウンロードのシーケンスは0%の進行度で始まりました。

意味

新しいバンドルがダウンロードされました — 10%の進行度が示されました。

意味

新しいバンドルがダウンロードされました — 20%の進行度が示されました。

意味

新しいバンドルがダウンロードされました — 30% の進捗が示されます。

意味

新しいバンドルがダウンロードされました — 40% の進捗が示されます。

意味

新しいバンドルがダウンロードされました — 50% の進捗が示されます。

意味

新しいバンドルがダウンロードされました — 60% の進捗が示されます。

ダウンロードの進捗状況

新しいバンドルがダウンロードされました — 進捗70%

ダウンロードの進捗状況

新しいバンドルがダウンロードされました — 進捗80%

ダウンロードの進捗状況

新しいバンドルがダウンロードされました — 進捗90%

download_complete

ダウンロード完了

ダウンロードの完了状況

新しいバンドルがダウンロードされました — ダウンロード完了しました

意味

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

意味

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

意味

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

意味

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

意味

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

何をするか

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

意味

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

何をするか

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

これは何を意味しますか?

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

何をしましょうか?

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

これは何を意味しますか?

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

何をしましょうか?

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

update_fail

更新失敗

これは何を意味しますか?

インストールされたバンドルは、しかし、アプリは呼び出されませんでした。 notifyAppReady, したがって Capgo はロールバックされました。

何をするか

呼び出し notifyAppReady() アプリが起動プロセスを完了した後 notifyAppReady was not called, roll back current bundle maps to this code.

checksum_fail

マップ

セクションのタイトル “checksum_fail”

The downloaded bundle failed checksum validation. Common causes: CRC32 vs SHA256 mismatch from an old CLI upload, or encryption key mismatch on older plugins that surface decryption failure as checksum failure.

ダウンロードしたバンドルがチェックサム検証に失敗したことです。一般的な原因:古い __CAPGO_KEEP_0__ のアップロードからCRC32とSHA256の不一致、または古いプラグインで暗号化エラーを表す暗号化キー不一致

Re-upload with a current CLI/plugin (SHA256). If using encryption, verify the app public key matches the upload key, or upgrade to plugin 8.3.0+ for explicit keyMismatch 現在の __CAPGO_KEEP_0__/プラグイン (SHA256) で再アップロードしてください。暗号化を使用している場合、アプリの公開鍵がアップロード鍵と一致することを確認するか、プラグイン 8.3.0 以降にアップグレードして明示的なエラーを表示するようにします。

これは何を意味しますか

ダウンロードしたパッケージが暗号化を実行できませんでした。

何をしてください

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

これは何を意味しますか

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

何をしてください

Unixパスでパッケージを再構築するか、アップロードする前にアーカイブパスの正規化を行ってください。

これは何を意味しますか

zipファイル内にあるファイルパスはcanonicalではない。

何をするか

アップロードする前にアーカイブパス生成を修正する。

何を意味するか

zipファイルには無効なディレクトリパスが含まれている。

何をするか

アップロードする前にアーカイブ構造を修正する。

何を意味するか

デバイスはダウンロードしたバンドルを展開できなかった。

何をするか

アーカイブの整合性とサポートされている圧縮を検証します。

これは何を意味しますか

ダウンロードに失敗しました。デバイスがメモリ不足でした。

何をしますか

バンドルサイズを削減するか、メモリが多くあるデバイスで再試行します。

デバイス側のクラッシュ、メモリ、WebView診断。常にダッシュボードでメタデータJSONを検査します。

これは何を意味しますか

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

これは何を意味するか

アプリが前面に移動しました。

これは何を意味するか

CapacitorレイヤーまたはJavaScriptのクラッシュです。メタデータにはメッセージ、スタック、ソース、そしてアクティブなバンドルコンテキストが含まれます。

何をするか

メタデータとネイティブログを検査してください。JSとネイティブエラーのレポートをペアして(例えばSentry)、失敗したcodeパスを特定してください。

これは何を意味するか

ネイティブプラットフォームのクラッシュです。メタデータにはプラットフォーム、理由、スタック、プロセス詳細が含まれます。

何をするか

XcodeまたはLogcatのクラッシュログを使用し、メタデータからアクティブなバンドルと関連付けます。

これは何を意味しますか?

Androidアプリケーションが応答しないイベントです。

何をしますか?

LogcatでANRトレースを検査し、更新後にメインスレッドのブロッキングワークを削減します。

これは何を意味しますか?

メモリ圧力の後にOSがアプリケーションを殺しました。

何をしますか?

更新アクティブ化後にメモリ使用を削減し、メタデータで利用可能なメモリシグナルを検査します。

What it means

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

What to do

リソースタイプまたはプラットフォームの理由でメタデータを検査してください。

app_initialization_failure

アプリ初期化失敗

What it means

アップデーターまたは起動が正常な実行時間前に失敗しました。

What to do

失敗したステップとエラーメッセージを検査してください。

app_memory_warning

メモリ警告

What it means

iOS メモリ警告です。

何をするか

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

何を意味するか

WebView内で発生した未処理のJavaScriptエラーです。メタデータにはエラーメッセージ、ソースURL、行番号、列番号、スタック情報が含まれます。

何をするか

JSとネイティブレイヤーでエラー報告をインストールし、実行中のプロダクションでエラーが発生した際に正確なエラー行をキャプチャします。

何を意味するか

WebView内で発生した未処理のPromiseの拒否です。

何をするか

JSとネイティブのエラー報告を使用して非同期の失敗をキャプチャします。

webview_resource_error

webview_resource_error

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

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

対処方法

メタデータ URL とステータス詳細を使用して、破損したアセットまたはネットワーク規則を修正します。

webview_security_policy_violation

webview_security_policy_violation

コンテンツ セキュリティ ポリシーがリソースをブロックしました。

対処方法

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

webview_unclean_restart

webview_unclean_restart

不正な再起動

不正な再起動

前のWebViewセッションが適切に終了しなかったため、更新後にクラッシュループが発生する可能性があります。

対処法

クラッシュとWebViewエラーイベントの再起動前後で関連付けます。

webview_render_process_gone

webview_render_process_gone

意味

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

対処法

レンダラーのクラッシュシグナルをメタデータとネイティブログに検査します。

webview_content_process_terminated

webview_content_process_terminated

意味

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

対処法

__CAPGO_KEEP_0__

環境とチャネル

環境とチャネル

デバイス側のコンテキストイベント

os_version_changed

OSバージョン変更

OSバージョン変更の意味

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

ネイティブアプリバージョン変更の意味

ネイティブアプリストアバージョンが変更され、ネイティブとウェブバンドルの変更を区別します。

チャンネルを取得する意味

デバイスは現在のチャンネルを確認しました。

__CAPGO_KEEP_0__は何を意味しますか。

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

__CAPGO_KEEP_0__は何を意味しますか。

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

バンドル状態

バンドル状態
  • SUCCESS: バンドルインストール完了
  • ERRORインストールまたはダウンロードに失敗しました。
  • PENDING: ダウンロード完了、リリース待機
  • DELETED: Bundleが削除されましたが、統計用に表示されます。
  • DOWNLOADING: Bundleが現在ダウンロード中です。

デバイスログを理解する

「デバイスログを理解する」

デバッグコマンド

「デバッグコマンド」

CapgoのCloudユーザーには、デバッグコマンドが用意されています。

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

アプリのすべてのイベントを確認し、更新が行われていない場合は解決策を見つけることができます。

iOSネイティブログ

「iOSネイティブログ」

Xcodeでログを探します

Androidネイティブログ

Androidネイティブログ

Android Studioでログを探します

ネイティブログのフレーズマッピング

ネイティブログのフレーズマッピング
  • Failed to download fromdownload_fail
  • notifyAppReady was not called, roll back current bundleupdate_fail

デバイスにダウンロードしたパッケージを探します

デバイスにダウンロードしたパッケージを探します

iOSでデバッグするには、コンピューターにアプリをダンプする必要があります。以下のように実行できます。

Xcodeには、iOSデバイス上の開発者がインストールしたアプリのファイルシステムを検査するための組み込み機能があります。 Xcodeウィンドウメニューの「デバイスとシミュレータ」オプション

このように実行するには:

  • Macにデバイスを接続し、Xcodeメニューバーの「ウィンドウ」>「デバイス」を選択します。
  • 左側のペインの「デバイス」セクションの下で、デバイスを選択します。
  • このデバイスの開発者がインストールしたアプリの一覧が表示されます。
  • 表示したいアプリを選択し、画面の下部の「3点」アイコンを選択します。
  • ここで、ファイルシステムの現在の状態をダウンロードすることができます。

Xcodeデバイスパネルにアプリコンテナダウンロードオプションが表示されます

ファイルシステムのスナップショットをダウンロードし、.xcappdataファイルとしてエクスポートするためにダウンロードコンテナを選択します。

ダウンロードしたxcappdataファイルにShow Package Contentsコンテキストメニューを右クリックしてフォルダを開きます。

このファイルに右クリックしてShow Package Contentsを選択してフォルダを開きます。

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

iOSアプリコンテナフォルダ構造を表示し、DocumentsとLibraryフォルダが見つかるはずです。

アプリ再起動後にバージョンが2つのフォルダに存在する必要があります。

library/NoCloud/ionic_built_snapshots アプリ再起動後にバージョンが2つのフォルダに存在する必要があります。

ホットリロードのために documents/versions Android

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

Android

__CAPGO_KEEP_0__

  • View > Tool Windows > Device File Explorer またはツール ウィンドウ バーの Device File Explorer ボタンをクリックして、Device File Explorer を開きます。
  • デバイスをドロップダウンリストから選択してください。
  • パスを開きます。 data/data/__CAPGO_KEEP_0__/ ここで __CAPGO_KEEP_0__はあなたのアプリIDです。

Android Studio Device File Explorer でアプリデータ ディレクトリを表示

次に、 versions フォルダを見つけてみてください。

iOS 生産環境でのクラッシュログの理解

iOS 生産環境でのクラッシュログの理解

デバッグから続ける

デバッグ

デバッグ native プラグインの作業を計画する場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-updaterを使用して native 能力のために @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-updaterを使用する Using @capgo/capacitor-updater for the native capability in Using @capgo/capacitor-updater, native プラグインの作業を計画する場合、@Capgo/__CAPGO_KEEP_1__-updaterを接続して native 能力のために @Capgo/__CAPGO_KEEP_1__-updaterを使用する Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, プラグインの追加または更新 プラグインの追加または更新の実装詳細について Ionic エンタープライズ プラグインの代替 Ionic エンタープライズ プラグインの代替の製品ワークフローについて