Remote Config で最小アプリ バージョンを適用する

アプリの進化に伴い、新しいリリースでは、バックエンド API に破壊的変更が導入されたり、重大なセキュリティの脆弱性が解決されたり、非推奨のサービスや AI モデルが置き換えられたりする可能性があります。このような場合、以前のバージョンのアプリは信頼性や安全性が低下する可能性があります。

Remote Config を使用すると、クラウドからアプリのバージョン要件を動的に制御できます。Remote Config でバージョン パラメータを定義すると、カスタム サーバー インフラストラクチャをデプロイしたり、緊急アップデートをリリースしたりすることなく、ユーザーにアプリのアップデートを促したり、アップデートを必須にしたりできます。

更新戦略を選択する

Remote Config は、クライアントで評価するバージョン パラメータを提供します。これにより、変更の重大度に応じて、次の 2 つの戦略のいずれかにアプリの更新 UI を構成できます。

  • 強制(ブロック)アップデート: 以前のアプリ バージョンがバックエンドと互換性がない場合や、セキュリティ リスクがある場合は、ユーザーがアップデートするまでアプリへのアクセスをブロックできます。インストールされているバージョンが必要な最小バージョンよりも古い場合は、最新バージョンをインストールするためにプラットフォームのアプリストアにユーザーを誘導する、閉じることができないダイアログを表示するようにアプリを設定できます。
  • 柔軟な(オプションの)アップデート: アップデートで新機能、パフォーマンスの改善、軽微なバグの修正が導入される場合は、アプリを構成して、ユーザーが都合のよいタイミングでアップデートを促すバナーやプロンプトを表示し、アプリの使用を継続できるようにします。

ステップ 1: Firebase コンソールでパラメータを構成する

アプリのバージョンを管理するには、Remote Config テンプレートでパラメータを定義します。

  1. Firebase コンソールで、[DevOps & エンゲージメント] > [Remote Config] > [パラメータ] ページに移動します。
  2. [パラメータを追加](または、これが最初のパラメータの場合は [構成を作成])をクリックします。
  3. 次のパラメータを定義します。
    • minimum_version: アプリでサポートされている最も古いバージョンを表す文字列(例: "2.4.0")。この値より古いバージョンを実行しているアプリは、更新されるまでブロックされます。
    • latest_version (省略可): アプリの最新の利用可能なバージョンを表す文字列(例: "2.5.1")。minimum_versionlatest_version の間のバージョンを実行しているアプリは、更新の推奨を任意で表示できます。
    • update_url (省略可): ユーザーがアップデートをダウンロードできるストアの URL(Google Play ストアや Apple App Store の掲載情報など)。
  4. 省略可: プラットフォーム固有の条件を追加します。
    • Android アプリと Apple アプリでは、リリース バージョンやストア URL が異なることが多いため、同じパラメータの下に各プラットフォームの条件値を追加できます。
    • [条件の値を追加] > [条件を作成] をクリックします。条件に名前(Android AppiOS App など)を付け、ターゲティング ルールとして [アプリ] を選択して、アプリを選択します。
    • 各プラットフォーム条件に適切なバージョン文字列を設定し、デフォルト値をフォールバックとして保持します。
  5. [保存] をクリックし、[変更を公開] をクリックしてテンプレートを適用します。

ステップ 2: クライアントサイドのバージョン チェックを実装する

クライアントで、起動時にインストール済みのアプリのバージョンを Remote Config パラメータと照合します。

  1. アプリ内デフォルト値を設定する: アプリバンドルで常に安全なアプリ内デフォルト値を指定します(たとえば、minimum_version をアプリの初回リリース("1.0.0" など)に設定します)。このフォールバック構成により、デバイスがオフラインの場合や、初回フェッチ リクエストが失敗した場合でも、アプリが正常に動作し続けます。プラットフォーム固有のガイダンスについては、Remote Config テンプレートのデフォルトをダウンロードするをご覧ください。
  2. Remote Config をフェッチして有効にする: アプリの起動時に最新のテンプレート値をフェッチして有効にします。
  3. バージョンの比較: アクティブな minimum_version 文字列と latest_version 文字列を取得し、現在インストールされているアプリのバージョンと比較します。

  4. バージョンの比較に基づいて対応する:

    • 必須のアップデートを適用する: current_versionminimum_version より前の場合は、全画面表示の閉じることができないモーダル アラートを表示します。アプリの残りの部分へのナビゲーションを無効にし、プラットフォームのアプリストアで update_url を開くボタンを提供します。
    • オプションのアップデートを促す: current_versionlatest_version より前の場合は、アップデートが利用可能であることをユーザーに知らせる、閉じることができるダイアログまたは通知を表示します。このダイアログまたは通知には、[今すぐ更新] または [後で] のオプションがあります。
    • アクセスを許可: それ以外の場合は、ユーザーがアプリに進むことを許可します。

ベスト プラクティス

  • リアルタイム リスナーを追加する: セキュリティの問題や UX の重大な低下によりバージョン アップデートが必要な場合は、アプリにリアルタイム Remote Config リスナーを追加すると、バージョン要件の変更が、次の定期的なフェッチやアプリの再起動を待たずに、アクティブなデバイスにすぐに反映されるようになります。
  • 限定的なテストグループでテストする: すべての本番環境ユーザーの minimum_version を引き上げる前に、限定的なテストグループで条件をテストするか、カスタム ユーザー プロパティを使用して内部テスターをターゲットにします。このテストでは、ブロック モーダルが正しく表示され、ストアリンクが適切に解決されることを確認します。
  • プラットフォームのアプリ内アップデート API を使用する: Android では、Remote Config チェックと並行して Google Play In-App Updates を統合して、ユーザーがアプリを離れることなくアップデートをダウンロードしてインストールできるようにすることを検討してください。
  • 本番環境チェックリストを読む: アプリと AI 機能を本番環境用に準備するためのガイダンスについては、Firebase リリース チェックリストAI Logic 本番環境チェックリストをご覧ください。