コンテンツにスキップ

デバッグ

GitHub

クラウド拒否の場合、code が必要な場合は、より深い対処法のウォークスルーを参照してください。 一般的な更新問題.

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

各セクションのタイトルはコンソールログテーブルのアクション code に対応しているので、直接リンクできます。

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

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

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

何をしますか?

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

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

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

何をしますか?

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

意味

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

対処

プランをアップグレードしてください。ダッシュボードまたは次の請求サイクルを待ってください。

意味

デバイスは、現在のチャンネルで最新のバンドルを取得しています。これは正常な状態であり、エラーではありません。

これは何を意味しますか

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

何をするべきですか

レンダリングループ内でアップデートAPIを呼び続けないでください。ユーザーアクションからのみ呼び出し setChannel / getChannel 、および defaultChannel を設定してください capacitor.config.

バックエンドの拒否は、無効なネイティブバージョンメタデータによって引き起こされます。

これは何を意味しますか

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

iOSの更新を無効にしているため、iOSを実行しているデバイスが表示されます。

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

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

バックエンドの拒否

セクション「disablePlatformIos」

disablePlatformIos

意味

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

対処方法

Platform and build targeting

iOSの有効化をチャンネル内で行うか、iOSビルドをブロックする意図が明確な場合に専用のチャンネルにルーティングする。

意味は?

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

対処する方法

このチャンネルでAndroidが有効になっていない場合は、有効化してください。Androidの更新をブロックする意図が明確な場合は、専用のチャンネルにAndroidビルドをルーティングする。

意味は?

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

対処する方法

このチャンネルでElectronが有効になっていない場合は、有効化してください。Electronの更新をブロックする意図が明確な場合は、専用のチャンネルにElectronビルドをルーティングする。

これは何を意味するか

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

何をするか

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

これは何を意味するか

製品用ビルドである /updatesがこのチャンネルでは製品用アップデートがブロックされています。

何をするか

このチャンネルで製品用アップデートを許可する場合は誤ってしまった場合、製品用ビルドを正しいチャンネルにルーティングするか

これは何を意味するか

A real phone or tablet was blocked because this channel blocks real devices.

対処する方法

実機の更新を有効にし、この誤操作が意図したものだった場合、または、制限を維持し、実機を別のチャネルにルーティングする。

意味

このチャネルではエミュレータの更新が無効になっていますが、実機ではエミュレータです。

対処する方法

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

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

セクション “Auto-update compatibility rules”

バックエンドの拒否は、semverまたはメタデータのルールが対象のパッケージをブロックした場合に発生します。

What it means

チャンネル互換性ポリシーにより、自動更新が無効化されています。メタデータには auto_update 、または major, minor, patch, metadataWhat to do none.

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

セクション「disableAutoUpdateUnderNative」

disableAutoUpdateUnderNative

What it means

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

What to do

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

セクション「disableAutoUpdateMetadata」

これは何を意味しますか

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

何をしますか

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

これは何を意味しますか

チャンネルはメジャーバージョンジャンプをブロックします、例えば 1.x.x を 2.x.x.

何をしますか

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

それが意味する

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

それが何をする

チャンネル戦略を、メジャー展開計画と合わせるか、このトラックでメジャージャンプを許可する

それが意味する

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

何をするか

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

チャンネル設定

「チャンネル設定」

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

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, つくり直し版ではなく、manifestエントリもない

何をするか

バンドルを再構築し、再アップロードし、バンドルが実際のファイル内容を持つことを確認する

何を意味するか

デバイスの暗号化公開鍵がバンドルを暗号化するために使用した鍵と一致しない。メタデータには device_key_id, bundle_key_id, そして version.

何をするか

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

アプリ設定と古いクライアント

「アプリ設定と古いクライアント」

アプリ設定またはアップデータバージョンが非対応の場合に発生するバックエンド拒否の原因です。

これは何を意味しますか

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

何をしてください

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

これは何を意味しますか

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

__CAPGO_KEEP_0__ を削除またはクリアしてください

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

意味

アップデート プラグインはバージョン 4 です。バックエンドはこれを認識しません。

対処法

プラグインと CLI をバージョン 5 以降 (バージョン 8 を推奨) にアップグレードし、 Capacitor バージョン 5 以降に、再構築し、バンドル メタデータを再公開してください。

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

意味

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

Section titled “get”

Capgo sent download information for a new version to the device.

Section titled “set”

Section titled “set”

Section titled “set_fail”

Section titled “set_fail”

Section titled “set_fail”

Section titled “set_fail” npx @capgo/cli@latest app debug Section titled “set_fail” notifyAppReady フロー。

これは何を意味するか

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

これは何を意味するか

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

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

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

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

これは何を意味するか

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

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

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

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

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

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

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

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

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

これは何を意味しますか

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

何をするか

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

何を意味するか

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

何をするか

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

何を意味するか

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

何をするか

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

意味

バンドルがダウンロードできませんでした。

対処

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

update_fail

更新失敗

意味

バンドルがインストールされたが、アプリが呼び出さなかったため、__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”

What it means

Windowsスタイルのパスが不正であるため、zipファイルに含まれる。

What to do

Unixパスのbundleを再構築するか、アップロードする前にアーカイブパスの不正を修正する。

What it means

zipファイル内のファイルパスがcanonical pathではない。

What to do

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

What it means

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

何をするか

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

何を意味するか

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

何をするか

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

何を意味するか

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

何をするか

バンドルサイズを削減するか、より多くのフリーメモリを持つデバイスで再試行する。

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

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

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

これは何を意味する?

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

app_moved_to_foreground

これは何を意味する?

アプリがクラッシュした

これは何を意味する?

__CAPGO_KEEP_1__

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

何をするか

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

何を意味するか

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

何をするか

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

何を意味するか

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

何をするか

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

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 を調整します。

これは何を意味しますか

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

何をしますか

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

これは何を意味しますか

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

何をするか

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

何を意味するか

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

何をするか

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

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

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

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

それが意味する

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

native_app_version_changed

「native_app_version_changed」

それが意味する

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

それが意味する

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

それが意味する

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

何が意味するか

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

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

デバッグコマンド

デバッグコマンド

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

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

アプリ内で発生するすべてのイベントを確認し、更新が正常に実行されない場合は解決策を探すことができます。

iOSネイティブログ

iOSネイティブログ

Xcodeでログを確認する方法

Androidネイティブログ

Androidネイティブログ

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

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

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

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

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

iOS

iOS

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

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

To achieve this:

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

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

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

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

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

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

Selecting Download Container… will download and export a snapshot of the file system as a .xcappdata file that you can browse through.

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

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

そして documents/versions ホットリロードのために

Android

Android

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

  • デバイス ファイル エクスプローラーを開くには、次のいずれかをクリックしてください。
  • 「ビュー > ツール ウィンドウ > デバイス ファイル エクスプローラー」またはツール ウィンドウ バーの「デバイス ファイル エクスプローラー」ボタンをクリックしてください。
  • ドロップダウン リストからデバイスを選択してください。 パスを開く data/data/APP_NAME/ APP_NAMEはあなたのアプリIDです。

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

次に versions フォルダを見つけてみて

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

「iOSの生産環境でのクラッシュログの理解」のセクション

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