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

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

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

更新戦略を選択する

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

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

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

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

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

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

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

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

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

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

ベスト プラクティス

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