よくあるアップデートの問題
このプラグインのインストール手順と完全なMarkdownガイドを含むセットアッププロンプトをコピー
アップデートの確認に失敗した場合、通常 Capgo は error code と message を /updates レスポンスに返します。このページでは、よくあるエラーとその迅速な解決策について説明します。
まずはこちらをお読みください
「Read this first」セクションの内容は、no_new_version_availableエラーではなく正常な状態です。- 「アップデートが見つかりましたが適用されませんでした」という報告の多くは、キャッシュの遅延ではなく、ポリシーや設定による拒否です。特にレスポンスに明示的な
errorcode - 使用するのは
npx @capgo/cli@latest app debugリクエスト/レスポンスの詳細を確認するために、問題を再現している間。
よくあるエラーコード
「Common failure codes」セクションprovider_infrastructure_request_blocked
「provider_infrastructure_request_blocked」セクション原因
アプリで プロバイダーのインフラへのリクエストがブロックされている が有効になっており、リクエストが既知のGoogleまたはAppleのデータセンターIP範囲から送信されました。Capgo は、これらのリクエストを /updates, /stats、および /channel_self プロバイダー由来のトラフィックがデバイスのトラフィックとして扱われるのを防ぐためにブロックします。
修正
- 通常のユーザーネットワーク環境下の実機を使用して、アップデートの再現を行ってください。
- この保護機能が有効な間は、updater、stats、またはchannel-selfのチェックに、クラウドホストのプローブやプロバイダーのデータセンターランナーを使用しないでください。
- もしそのトラフィックが意図的なものである場合は、アプリの 情報 タブを開き、 プロバイダーのインフラへのリクエストがブロックされているをオフにしてください。テスト完了後に再度有効にしてください。
新しいアプリでは、この保護機能がデフォルトで有効になっています。この設定が導入される前に作成されたアプリは、手動で有効にするまで無効のままです。
レスポンスの詳細
/updatesupdaterのレスポンス規約を維持し、HTTP200を返します。そのボディには以下が含まれますerror,message,kind: "blocked"、およびprovider("google"または"apple")./statsと/channel_selfHTTPエラーを返します429同じエラー code が発生します。これは一時的なリトライ対象ではなく、意図的なポリシーによるブロックとして扱ってください。
disable_auto_update_to_major
「disable_auto_update_to_major」セクション原因
設定されているチャンネルがメジャーアップデートを制限しており(disable_auto_update = major)、ターゲットとなるbundleのメジャーバージョンがデバイスのベースラインバージョンを上回っています。
典型的な症状
version: 1.0.8 と old: 0.0.0 デバイスがベースラインを報告していることを意味します 0.0.0、そのためメジャーアップグレードは拒否されます。
解釈の仕方
バックエンドはデバイスのbaselineと old およびターゲット version.
- targetが
1.0.1の場合、baselineのメジャーバージョンは1である必要があります(例:1.0.0). - targetが
10.0.1の場合、baselineのメジャーバージョンは10である必要があります(例:10.0.0).
修正オプション A(推奨): デバイスbaselineのメジャーバージョンを揃える
設定 plugins.CapacitorUpdater.version 内の capacitor.config.* つまり、 メジャー バージョンが、配信したいバンドルのメジャーバージョンと一致している必要があります(例: 1.0.0 の 1.0.1, 10.0.0 の 10.0.1).
その後、インストール済みのアプリにこの設定を一度適用してください:
- 実行する
npx cap sync. - ネイティブアプリを再ビルドして再インストールします。
解決策 B: チャネルポリシーを緩和する
チャネル設定でメジャーバージョンを跨いだ自動アップデートを許可します(そのロールアウト戦略が意図的な場合のみ)。
関連ドキュメント:
disable_auto_update_to_minor / disable_auto_update_to_patch
「disable_auto_update_to_minor / disable_auto_update_to_patch」セクション原因
Channelのポリシーが、提供されているアップデートよりも厳格な場合(minor または patch)に発生します。
minorターゲットとなるbundleのメジャーまたはマイナーバージョンが、デバイスのNative Buildのベースラインと異なる場合にブロックされます(version_build)。例:1.2.3 -> 1.3.0はブロックされます。patchは、以下のバージョンからのメジャー、マイナー、またはパッチ番号の変更をすべてブロックします:version_build。サフィックスの変更のみが許可されます。MAJOR.MINOR.PATCH次のように同一のままです:1.0.0-beta.1 -> 1.0.0-beta.2または1.0.0+build.1 -> 1.0.0+build.2.
修正
- 現在のポリシーに適合するbundleをuploadするか、
- dashboard/CLIでchannelのポリシーを変更してください。
関連ドキュメント:
disable_auto_update_to_metadata
「disable_auto_update_to_metadata」というセクション原因
Channelがmetadataベースのターゲティング(version_number) を使用しており、デバイスのbaselineが要件を満たしていない min_update_version.
修正
- デバイスのベースライン(
CapacitorUpdater.version)をインストール済みのネイティブアプリのバージョンに合わせるか、 - 調整
min_update_version/ チャンネル戦略。
関連ドキュメント:
disable_auto_update_under_native
「disable_auto_update_under_native」というセクション原因
チャンネルがネイティブのベースライン未満へのダウングレードを防いでいます。
修正
- ネイティブのベースライン以上の bundle バージョンを upload するか、
- そのチャンネルの「under native」ダウングレード保護を無効にしてください。
関連ドキュメント:
cannot_update_via_private_channel
セクション「cannot_update_via_private_channel」原因
選択中またはデフォルトのチャンネルでは、デバイスのセルフアサインが許可されていません。
修正
- セルフアサインが有効な別のチャンネルを使用するか、
- チャンネルを公開するか、セルフアサインを有効にしてください。
関連ドキュメント:
unknown_version_build / semver_error
セクション「unknown_version_build / semver_error」原因
デバイスのベースラインバージョンが見つかりません(unknown)または 有効なsemverではありません.
修正
- 設定
plugins.CapacitorUpdater.versionへの 有効なsemverではありません のような1.2.3. - ネイティブアプリをSyncして再ビルドしてください。
関連ドキュメント:
unsupported_plugin_version
「unsupported_plugin_version」セクション原因
Updaterプラグインのバージョンが古いため、現在のバックエンド要件を満たしていません。
修正
- アップグレード
@capgo/capacitor-updater. - 実行する
npx cap sync. - Native Buildを再構築して再インストールしてください。
disabled_platform_ios / disabled_platform_android
「disabled_platform_ios / disabled_platform_android」セクション原因
そのプラットフォームでは、チャンネルのアップデートが無効になっています。
修正
- チャンネル設定でプラットフォームのトグルを有効にしてください。
disable_prod_build / disable_dev_build / disable_device / disable_emulator
「disable_prod_build / disable_dev_build / disable_device / disable_emulator」セクション原因
チャンネルが現在のビルドタイプまたは実行ターゲットを許可していません。
修正
- チャンネル設定を
allow_prod,allow_dev,allow_device,allow_emulatorテスト対象に合わせて調整してください。
key_id_mismatch
「key_id_mismatch」セクション原因
Bundleの暗号化キーとデバイスキーが一致しません。
修正
- アプリ設定とBundle暗号化ワークフローで、同じ暗号化キー/公開キーを使用してください。
no_channel / null_channel_data
「no_channel / null_channel_data」セクション原因
デバイスに対して有効なチャンネルが見つかりませんでした。
修正
- クラウドのデフォルトチャンネルを設定するか、
- 設定済み
defaultChannelテストビルドで設定するか、 - デバイスにチャンネルの上書きを割り当ててください。
関連ドキュメント:
on_premise_app
「on_premise_app」というセクション原因
バックエンドが HTTP 429 を返しました on_premise_app。これには3つの原因が考えられます:
- Capgo に App ID が存在しない — デバイスから
app_id送信された ID が登録されていないため、バックエンドに記録がありません。 - アプリがオンプレミスとしてフラグ付けされている — アプリ自体は存在しますが、セルフホストのアップデート用に設定されているため、Capgo のクラウドエンドポイントが配信を拒否します。
- Organization プランが解約されている — アプリの Organization に有効なサブスクリプションがありません。
よくある間違い
タイポ(打ち間違い) plugins.CapacitorUpdater.appId ( capacitor.config.ts) または Capgo ダッシュボードに登録されている App ID との一致しないケース。バックエンドは「不明なアプリ」と「オンプレミスアプリ」を区別できないため、同じエラー code を返します。
修正
- 次を確認:
app_idが Capgo ダッシュボードの表示と完全に一致していること(大文字・小文字を区別)。 - アプリがまだ登録されていない場合は、次を実行してください:
npx @capgo/cli@latest app add. - アプリを意図的にオンプレミスで運用している場合は、
plugins.CapacitorUpdater.updateUrlを Capgo のクラウドURLではなく、セルフホストのアップデートエンドポイントに設定してください。 - Organizationプランが期限切れの場合は、更新またはアップグレードしてください。
クイック診断チェックリスト
「クイック診断チェックリスト」という見出しのセクション- ビルドに合った app ID と channel であることを確認してください。
- 確認:
CapacitorUpdater.versionがインストール済みのネイティブアプリのバージョンと一致していること。 - チャンネルポリシー(
disable_auto_update)が意図したロールアウトと一致しているか確認してください。 - プラットフォーム/ビルドターゲットの切り替え設定で、このデバイスが許可されているか確認してください。
- 実行する
npx @capgo/cli@latest app debugまた、バックエンドのエラー code を確認してください。
さらにサポートが必要ですか?
「さらにサポートが必要ですか?」というタイトルのセクションアップデートに関する一般的な問題から次へ
「アップデートに関する一般的な問題から次へ」というタイトルのセクション以下を使用している場合: よくあるアップデートの問題 ネイティブプラグインの作業を計画するには、それを以下と連携させる @capgo/capacitor-updater の使い方 @capgo/capacitor-updater を使用する場合のネイティブ機能について、 Capgo プラグインディレクトリ Capgo プラグインディレクトリでのプロダクトワークフロー向けに、 Capgo による Capacitor プラグイン Capgo による Capacitor プラグインの実装詳細については、 プラグインの追加・更新 実装の詳細は Adding or Updating Plugins を、 Ionic Enterprise プラグインの代替案 製品ワークフローは Ionic Enterprise Plugin Alternatives を参照してください。