コンテンツにスキップ

デバッグ

GitHub

codeのクラウド拒否が発生し、深い対処方法のウォークスルーが必要な場合は、 一般的なアップデート問題.

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

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

請求拒否の理由は請求、制限、またはエラー以外の状態です。

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

CapgoはGoogleまたはクラウドインフラストラクチャからのトラフィックが検出されました。4時間以内にアップデートされたものは無視されます。そうすると、ボットトラフィックが請求可能なデバイスとしてカウントされないようになります。

何をしましょうか。

実際のユーザーには無視してください。正常なネットワークと実際のデバイスからリトライしてください、または後で再度確認してください。

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

あなたのアプリは、GoogleとAppleのデータセンターIP範囲からの要求をブロックするように設定されています。保護はアップデートチェック、統計、チャネル自体の要求に適用されるため、クラウドホストされたプローブとプロバイダーランナーの場合でも、有効なアプリ設定とは無関係にこの応答を受け取ることができます。

何をしましょうか。

物理デバイスから正常なユーザーネットワークからリトライしてください。プロバイダーオリジナルのトラフィックが意図的である場合、暂時的に「プロバイダインフラストラクチャ要求のブロック」を無効にします。 Block provider infrastructure requests アプリ内で 情報 タブに移動し、テスト後に再度有効にします。新しいアプリでは、この設定がデフォルトで有効になっています。既存のアプリでは、変更されるまで前の設定が維持されます。

needPlanUpgrade

「needPlanUpgrade」

これは何を意味するか

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

何をするか

ダッシュボードでプランをアップグレードするか、次の請求サイクルを待ちます。

これは何を意味するか

デバイスが最新のバンドルを取得できるチャンネルで、最新のバンドルがすでに取得されているため、正常な状態です。

What it means

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

What to do

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

セクション "semver_error"

semver_error

What it means

ネイティブアプリのバージョンがconfigに欠落しているか、または無効なsemverである

__CAPGO_KEEP_0__x.y.z).

対処方法

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

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

バックエンドの拒否

セクション「disablePlatformIos」

disablePlatformIos

意味

このチャンネルではiOSの更新がブロックされているため、デバイスはiOSを実行しています。

対処方法

対処方法

iOSの有効化をチャンネルに追加するか、iOSビルドをブロックする場合に専用のチャンネルにルーティングする。

disablePlatformAndroid

「disablePlatformAndroid」

これは何を意味するか

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

何をするか

この誤りが偶然に起きた場合は、チャンネルにAndroidを有効化するか、ブロックが意図的である場合にAndroidビルドを専用のチャンネルにルーティングする。

disablePlatformElectron

「disablePlatformElectron」

これは何を意味するか

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

何をするか

この誤りが偶然に起きた場合は、チャンネルにElectronを有効化するか、ブロックが意図的である場合にElectronビルドを専用のチャンネルにルーティングする。

disableDevBuild

「disableDevBuild」

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

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

何をするべきですか?

開発用ビルドをテストチャンネルで許可するか、このチャンネルはリリース専用にし、開発用デバイスを別の場所に移動するか。

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

生産用ビルド /updatesですが、このチャンネルでは生産用の更新がブロックされています。

何をするべきですか?

このことが間違いだった場合に、このチャンネルで生産用の更新を許可するか、生産用のビルドを正しいチャンネルにルーティングするか。

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

実機デバイスがブロックされたのは、このチャンネルが実機デバイスをブロックしているためです。

どうすればいいか

このチャンネルで実機デバイスをブロックしたのは間違いだった場合は、実機デバイスの更新を有効にしてください。ブロックを維持し、実機デバイスを別のチャンネルにルーティングすることもできます。

disableEmulator

disableEmulator

どういうことか

このチャンネルではエミュレータの更新がブロックされていますが、エミュレータは実機です。

どうすればいいか

テストチャンネルでエミュレータの更新を有効にしてください。エミュレータの更新をブロックしたままにして別のチャンネルでエミュレータの検証を行うこともできます。

Auto-updateの互換性のルール

バックエンドの拒否

バージョンまたはメタデータのルールがターゲットパッケージをブロックした場合のバックエンドの拒否

disableAutoUpdate

disableAutoUpdate

Auto-updateの設定がチャンネル互換性ポリシーによって無効化されています。

メタデータには auto_update 、または major, minor, patch, metadata何をするか none.

チャンネル間の自動更新ポリシーを変更して、望ましいロールアウトを許可する。

セクション「disableAutoUpdateUnderNative」

チャンネルがデバイスのベースラインよりも古いバンドルを持っており、ネイティブバージョンで更新を送信するのをブロックしている。

何をするか

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

セクション「disableAutoUpdateMetadata」

意味は何ですか

このチャンネルは min_update_versionですが、デバイスのネイティブバージョンはその閾値以下です。

何をするか

を設定する min_update_version ターゲットのバンドルまたはリリースから、より新しいネイティブバージョンを選択する

意味は何ですか

このチャンネルはメジャーバージョンジャンプをブロックします。たとえば 1.x.x2.x.x.

何をするか

チャンネル戦略をメジャー展開計画と合わせるか、このトラックでメジャージャンプを許可する。詳細は 一般的なアップデートの問題.

その意味

チャンネルは、デバイスのネイティブベースラインとの比較でマイナーバージョンジャンプをブロックします(version_build)、たとえば 1.2.31.3.0.

何をするか

チャンネル戦略をマイナーロールアウト計画と合わせるか、このトラックでマイナージャンプを許可するか

その意味

チャンネルは、同じプレフィックスを維持しながらパッチレベル変更をブロックします; ただし、サフィックス変更のみが許可されます。 MAJOR.MINOR.PATCH prefix; only suffix changes are allowed.

何をするか

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

チャンネル設定

「チャンネル設定」

チャンネル構成が欠落しているか、互換性がないため、バックエンドで拒否されること。

cannotUpdateViaPrivateChannel

「cannotUpdateViaPrivateChannel」

何が起こっているか

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

何をするか

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

channelMisconfigured

チャンネル設定ミス

これは何を意味するか

チャンネルは disable_auto_update: "version_number" しかし、バンドル min_update_version Capgoは、更新するデバイスを決定することができません。なぜなら、バンドルはnullのためです。

何をするか

そのルールの欠落した設定を埋め合わせるか、シンプルな自動更新モードに切り替えるか。

これは何を意味するか

デフォルトのチャンネルが設定されていないか、デバイスにはチャンネルオーバーライドが設定されていない。

何をするか

デフォルトのチャンネルをダッシュボードで設定するか、 defaultChannel ビルド中。

バンドル配信と暗号化

バンドル配信と暗号化

Capgo がバンドルを提供または暗号化できなかった場合のバックエンド拒否

これは何を意味する?

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

何をする?

バンドルを再アップロードし、メニューを再生成し、R2 またはパブリック バンドル設定を検証する

__CAPGO_KEEP_0__ がバンドルが割り当てられているチャンネルにダウンロード可能なコンテンツが存在しない

これは何を意味する? external_url、ない r2_path、組み込まれていないバージョン、そしてメタデータエントリもない。

何をするか

バージョンを再構築し、再アップロードし、バンドルの実際のファイル内容を確認する。

何を意味するか

デバイスの暗号化パブリックキーは、バンドルの暗号化に使用したキーと一致しない。メタデータには device_key_id, bundle_key_id、そして version.

何をするか

コンソールでデバイスとバンドルのキーIDを比較する。同じキーと一致するCLI/プラグインバージョンで公開する。

バックエンドの拒否は、アプリの構成または非対応のアップデータバージョンによって引き起こされます。

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

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

何をするべきですか?

カスタムIDを送信しない、またはカスタムIDを有効にするのは、ワークフローがそれらを必要とする場合のみです。

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

server.url Capacitor の設定により、WebView はローカル バンドル ファイルをロードするのではなく、リモート URL をロードします。 Capgo のライブ アップデートはローカル ファイルが必要であり、 server.url 生産環境では推奨されていません。

何をするべきですか?

削除またはクリアする server.url 生産用ビルドと、更新パケットをローカルに保持するために使用します。この code は、バックエンドからの拒否またはデバイス側の統計として表示されることがあります。

これは何を意味するか

バックエンドはv4のアップデート プラグインをサポートしなくなった

何をするか

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

更新サイクル

「更新サイクル」

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

これは何を意味するか

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

What it means

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

What it means

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

What it means

デバイスでバンドルが有効化できませんでした。

What to do

nativeログを確認して npx @capgo/cli@latest app debug バンドルの整合性、パス、 notifyAppReady フロー。

これは何を意味するか

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

これは何を意味するか

1 つのバンドルがデバイス上で削除されました。

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

これは何を意味するか

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

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

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

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

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

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

新しいバンドルがダウンロードされました — 進行度は30%で示されています。

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

A new bundle has been downloaded — 40% の進捗が示されています。

意味は?

A new bundle has been downloaded — 50% の進捗が示されています。

意味は?

A new bundle has been downloaded — 60% の進捗が示されています。

意味は?

A new bundle has been downloaded — 70% の進捗が示されています。

意味は?

新しいバンドルがダウンロードされました — 進捗状況は80%で示されています。

意味は?

新しいバンドルがダウンロードされました — 進捗状況は90%で示されています。

意味は?

バンドルのダウンロードは正常に完了しました。

意味は?

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

意味は?

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

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

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

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

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

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

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

対処方法

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

これは何を意味するか

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

対処方法

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

これは何を意味するか

マニフェストファイルのブロリ解凍に失敗した

対処方法

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

意味

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

対処

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

意味

バンドルがインストールされたが、アプリが呼び出さなかったため、__CAPGO_KEEP_0__がロールバックされました。 notifyAppReady, so Capgo rolled back.

アプリが起動した後、

コール notifyAppReady() コンテキスト: Appflowの比較/移行のマーケティングコピーから長いCapgo UIのテキストフラグメント (親キー `appflow_migration_step2` )。ページ/エリア: Appflowの比較/移行のマーケティングコピー。役割: ウェブサイトのコピー文。ページ: ionic-appflow.astro。Capgo製品/ブランドと開発者用語を完全に保持するようにしてください。メッセージキー `appflow_migration_step2` (Appflow Migration Step2)。 notifyAppReady was not called, roll back current bundle codeをこのようにマップします。

What it means

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

What to do

最新のCLI/プラグイン (SHA256) を再アップロードしてください。暗号化を使用している場合、アップロードキーとアプリパブリックキーが一致していることを確認し、またはプラグイン 8.3.0+ にアップグレードして明示的なエラーを表示してください。 keyMismatch セクション:暗号化_失敗

decrypt_fail

What it means

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

What to do

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

Section titled “upload_fail”

windows_path_fail

Windowsパスエラー

これは何を意味しますか

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

何をしてください

Unixスタイルのパスでバンドルを再構築するか、またはアップロードする前にアーカイブのパスをサニタイズしてください。

canonical_path_fail

Canonicalパスエラー

これは何を意味しますか

zipファイル内のファイルパスがCanonicalではありません。

何をしてください

アップロードする前にアーカイブパス生成を修正してください。

これは何を意味しますか

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

何をするか

アップロードする前にアーカイブ構造を修正してください。

何を意味するか

デバイスはダウンロードしたバンドルを展開できませんでした。

何をするか

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

何を意味するか

ダウンロードが失敗したのは、デバイスがメモリが不足していると判断したためです。

何をするか

バンドルサイズを削減または、より多くのフリーメモリを持つデバイスで再試行してください。

アプリの健康とWebViewのイベント

アプリの健康とWebViewのイベント

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

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

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

app_moved_to_foreground

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

アプリがクラッシュしました

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

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

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

何をするか

メタデータとネイティブログを検査する。JSとネイティブエラー報告をペアする(例えばSentry)で、失敗した code パスを特定する。

何を意味するか

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

何をするか

XcodeまたはLogcatクラッシュログを使用し、メタデータのアクティブなバンドルと照合する。

何を意味するか

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

何をするか

アップデート後、メインスレッドのブロッキングワークを減らし、LogcatでANRトレースを検査する。

app_killed_low_memory

「app_killed_low_memory」

これは何?

メモリ圧力のため、OSはアプリを殺しました。

何をしますか?

アップデートアクティベーション後、メモリ使用量を削減し、利用可能なメモリシグナルを検査するメタデータを検査する。

app_killed_excessive_resource_usage

「app_killed_excessive_resource_usage」

これは何?

OSはアプリを、過剰なリソース使用のため殺しました。

何をしますか?

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

app_initialization_failure

「app_initialization_failure」

アップデータの意味

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

何をするか

失敗したステップとエラーメッセージを調べる必要があります。

アップデータの意味

iOS メモリの警告です。

何をするか

メタデータのメモリコンテキストを調べ、更新後にピーク使用率を削減する必要があります。

アップデータの意味

WebView での未処理の JavaScript エラーです。メタデータにはメッセージ、ソース URL、行、列、スタックが含まれます。

何をするか

JS とネイティブ層でエラー報告をインストールして、実行中のプロダクションで失敗した特定の行をキャプチャする。

何を意味するか

WebView 内の未処理のプロミス拒否

何をするか

JS とネイティブのエラー報告で非同期失敗をキャプチャする。

何を意味するか

WebView のリソースがロードに失敗した。

何をするか

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

これは何を意味しますか

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

何をしますか

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

これは何を意味しますか

前の WebView セッションが正常に終了せず、更新後にクラッシュループが発生する可能性があります。

何をしますか

クラッシュと WebView エラー イベントの前後を照会してください。

これは何を意味しますか

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

何をするか

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

何を意味するか

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

何をするか

メタデータからアクティブなバンドルとページURLを検査する。

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

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

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

それが意味する

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

native_app_version_changed

「native_app_version_changed」

それが意味する

ネイティブアプリのストアバージョンが変更され、ネイティブとウェブのバンドル変更を分離するのに役立ちます。

それが意味する

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

それが意味する

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

これは何を意味しますか

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

バンドルの状態

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

デバイスログを理解する

デバイスログ

デバッグコマンド

「デバッグコマンド」

There is a debug command for Capgo cloud users.

ターミナルウィンドウ
npx @capgo/cli@latest app debug

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

iOSネイティブログ

Xcodeでログを確認する方法

Xcodeでデバイスログを取得する

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

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

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

ネイティブログのフレーズマッピング
  • Failed to download from にマップ download_fail
  • notifyAppReady was not called, roll back current bundle にマップ update_fail

デバイス上でダウンロードしたバンドルを探す

デバイス上でダウンロードしたバンドルを探す

iOS

iOS

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

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

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

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

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

Download Container…を選択すると、ファイルシステムのスナップショットをダウンロードしてエクスポートし、.xcappdataファイルとしてブラウズできます。

ダウンロードしたxcappdataファイルに右クリックし、Show Package Contentsを選択してフォルダを開きます。

App Dataフォルダを開くと、Documents、Library、tmpなどのいくつかのフォルダが表示されます。

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

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

次に、2つのフォルダ内にバージョンを見つけることができます:

library/NoCloud/ionic_built_snapshots アプリ再起動後は必須です

そして documents/versions ホットリロード用

Android

Android

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

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

Android Studioのデバイスファイルエクスプローラでアプリデータディレクトリを表示

次に、 versions フォルダを見つけます。すべてのバージョンを表示

IOSの生産環境クラッシュログを理解する

「IOSの生産環境クラッシュログを理解する」のセクション

Capgoを使用している場合 デバッグ ネイティブ プラグインの作業を計画するには、Capgoを接続します。 Using @capgo/capacitor-updater for the native capability in Using @capgo/capacitor-updater, Capgo Plugin Directory for the product workflow in Capgo Plugin Directory, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, Capgoプラグインを追加または更新 Ionic Enterprise プラグインの代替 Capgoを使用 Ionic Enterprise プラグイン代替の製品ワークフローについて。