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

よくあるアップデートの問題

GitHub

アップデートの確認に失敗すると、通常 Capgo は error code と message の /updates レスポンスを返します。このページでは、よくある失敗と最速の修正方法を説明します。

  • no_new_version_available 失敗ではなく、正常な状態です。
  • 「アップデートが見つかったが適用されない」という報告の多くは、キャッシュの遅延ではなく、ポリシーや設定による拒否が原因です。特に、レスポンスに明示的な error code
  • 使用する npx @capgo/cli@latest app debug が含まれている場合は、問題を再現してリクエスト/レスポンスの詳細を確認してください。

原因

アプリで プロバイダーのインフラへのリクエストのブロック が有効になっており、リクエストの発信元がGoogleまたはAppleの既知のデータセンターIP範囲です。Capgo は、これらのリクエストを /updates, /statsや /channel_self プロバイダー由来のトラフィックがデバイスからのトラフィックとして扱われるのを防ぐためです。

解決策

  • 通常のユーザーネットワーク環境で、実機からアップデートを再現してください。
  • この保護が有効な間は、updater、stats、または channel-self チェックにクラウドホストのプローブやプロバイダーのデータセンターランナーを使用しないでください。
  • そのトラフィックが意図的なものである場合は、アプリの 情報 タブを開き、 プロバイダーのインフラへのリクエストのブロックをオフにしてください。テストが完了したら、再度有効にしてください。

新規アプリでは、この保護がデフォルトで有効になっています。この設定が導入される前に作成されたアプリでは、有効にするまで無効のままです。

レスポンスの詳細

  • /updates updater のレスポンス契約を維持し、HTTP を返します 200。そのボディには error, message, kind: "blocked"や provider ("google" または "apple").
  • /stats と /channel_self HTTP を返します 429 同じエラー code を含みます。これは一時的なリトライ条件ではなく、意図的なポリシーブロックとして扱ってください。

原因

あなたのチャネルはメジャーアップグレードをブロックしています(disable_auto_update = major)かつ、ターゲット bundle のメジャーバージョンがデバイスのベースラインバージョンより上です。

よくある症状

version: 1.0.8 を使用して old: 0.0.0 デバイスがベースラインを報告していることを意味します 0.0.0そのため、メジャーアップグレードは拒否されます。

解釈方法

バックエンドは、デバイスのベースラインと old およびターゲット version.

  • ターゲットが 1.0.1の場合、ベースラインのメジャーバージョンは 1 (例: 1.0.0).
  • ターゲットが 10.0.1の場合、ベースラインのメジャーバージョンは 10 (例: 10.0.0).

修正オプション A(推奨):デバイスのベースライン major を一致させる

設定 plugins.CapacitorUpdater.version における capacitor.config.* その MAJOR が配信したい bundle の MAJOR と一致するようにします(例: 1.0.0 を 1.0.1, 10.0.0 を 10.0.1).

次に、インストール済みのアプリに一度だけこの設定を適用します:

  1. 実行 npx cap sync.
  2. ネイティブアプリを再ビルドして再インストールします。

修正オプションB: チャンネルポリシーを緩和する

チャンネル設定でメジャーバージョン間の自動更新を許可する(そのロールアウト戦略が意図的な場合のみ)。

関連ドキュメント:

disable_auto_update_to_minor / disable_auto_update_to_patch

「disable_auto_update_to_minor / disable_auto_update_to_patch」セクション

原因

チャンネルポリシーがより厳格です(minor または patch)提供される更新よりも。

  • minor ターゲットバンドルがデバイスのネイティブベースラインとメジャーまたはマイナーバージョンが異なる場合にブロックします(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をアップロードするか、
  • dashboard/CLI でチャンネルポリシーを変更してください。

関連ドキュメント:

原因

チャンネルがメタデータベースのターゲティングを使用しており(version_number)かつ、デバイスのベースラインが要件を下回っている min_update_version.

解決策

  • デバイスのベースライン(CapacitorUpdater.version)をインストール済みのネイティブアプリバージョンに合わせるか、
  • 調整 min_update_version / チャンネル戦略。

関連ドキュメント:

原因

Channelは、ネイティブベースラインを下回るダウングレードを防止します。

解決策

  • ネイティブベースライン以上(等しい場合を含む)のバンドルバージョンをアップロードするか、
  • そのチャネルの「ネイティブ未満」ダウングレード保護を無効にしてください。

関連ドキュメント:

原因

選択中/デフォルトのチャネルでは、デバイスの自己割り当てが許可されていません。

解決策

  • 自己割り当てが有効な別のチャネルを使用するか、
  • チャネルをパブリックにするか、自己割り当てを有効にしてください。

関連ドキュメント:

原因

デバイスのベースラインバージョンが欠落しています(unknown)または 有効な semver ではありません.

解決策

関連ドキュメント:

原因

Updaterプラグインのバージョンが古いため、現在のバックエンド要件を満たしていません。

解決策

  • アップグレード @capgo/capacitor-updater.
  • 実行 npx cap sync.
  • ネイティブアプリを再ビルドして再インストールしてください。

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) テストターゲットと一致させてください。

原因

Bundleの暗号化キーとデバイスキーが一致しません。

解決策

  • アプリ設定とBundle暗号化ワークフローで、同じ暗号化キー/公開キーを使用してください。

原因

デバイスに有効なチャネルが解決されませんでした。

解決策

  • クラウドのデフォルトチャネルを設定するか、
  • 設定 defaultChannel テストビルドでは、
  • デバイスにチャネルオーバーライドを割り当ててください。

関連ドキュメント:

原因

バックエンドが HTTP 429 を返しました on_premise_app。これは以下の3つの状況で発生します:

  1. App ID が Capgo に存在しません — デバイスから送信された app_id が登録されていないため、バックエンドにその記録がありません。
  2. App がオンプレミスとしてフラグ付けされています — App は存在しますが、セルフホスト型アップデート用に設定されているため、Capgo クラウドエンドポイントが配信を拒否します。
  3. 組織のプランがキャンセルされています — App の組織に有効なサブスクリプションがもうありません。

よくある間違い

タイプミス plugins.CapacitorUpdater.appId ( capacitor.config.ts)または、Capgo ダッシュボードに登録されたアプリ ID との不一致。バックエンドは「不明なアプリ」と「オンプレミスアプリ」を区別できないため、同じエラー code を返します。

解決策

  • 次を確認してください: app_id Capgo ダッシュボードに表示されているものと完全に一致すること(大文字小文字を区別)。
  • アプリがまだ登録されていない場合は、 npx @capgo/cli@latest app add.
  • アプリが意図的にオンプレミスである場合は、 plugins.CapacitorUpdater.updateUrl を Capgo クラウド URL の代わりに、セルフホストされた更新エンドポイントに設定してください。
  • 組織プランの有効期限が切れた場合は、プランを更新またはアップグレードしてください。
  1. ビルドのアプリ ID とチャネルが正しいことを確認してください。
  2. 確認 CapacitorUpdater.version インストール済みのネイティブアプリのバージョンと一致している。
  3. チャンネルポリシー(disable_auto_update)が意図したロールアウトと一致している。
  4. プラットフォーム/ビルドターゲットのトグルでこのデバイスが許可されているか確認してください。
  5. 実行 npx @capgo/cli@latest app debug およびバックエンドのエラー code を確認してください。

さらにサポートが必要ですか?

「さらにサポートが必要ですか?」セクション

よくあるアップデートの問題から続ける

「よくあるアップデートの問題から続ける」セクション

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