もし問題のあるバージョンをリリースしてしまったら、いち早く修正版に更新してもらいたいところです。Google Play Consoleから問題のあるバージョンを利用しているユーザーに更新を求めることができます。
これはアプリに特別な実装が必要なわけではないので、緊急時には大変ありがたい仕組みです。問題を修正しリリースが完了したら、問題のあるバージョンを開き、「復元ツール」から「ユーザーに更新を求める」を選択します。
すると以下のようなボトムシートが表示されます。
次に進むと、ターゲティング条件の選択ができます。
条件は、「すべてのユーザー」「国/地域別」「Androidバージョン別」から選択可能です。
特定のロケールでのみ、特定のAndrdoidバージョンでのみ問題が発生するというのはリリース後に気づく問題として結構ありがちですね。強制アップデートはユーザーからすると煩わしいものなので、アンインストールされてしまうなどのリスクがあるもの、条件を絞れるなら絞った方が良いでしょう
また、この機能をテストすることもできます。「プロンプトのテスト(省略可)」の「手順を表示」をクリックすると手順が表示されます
内部アプリ共有を使って、問題のあるバージョンをインストールします。
これを使うにはConsole側の設定だけでなく、ダウンロードする端末のストアアプリの設定も変更する必要があります。
ストアアプリの「内部アプリ共有」が有効になっていない場合、ダウンロードリンクを開くと以下のように表示されます。

「内部アプリ共有」はストアアプリの「開発者向けオプション」の中にある設定なので、デフォルトでは表示されません。「Playストアのバージョン」を7連続タップすることで、「開発者向けオプション」が使えるようになります。

「開発者向けオプション」の中に入って、内部アプリ共有を有効にします。




改めてダウンロードリンクを開くと、指定のバージョンがダウンロード可能になります。


続いてリンクがかかれているapkをダウンロードし。表示されているadbコマンドでapkをインストールで準備が完了です。
アプリを起動すると以下のように更新を促す画面が出てきて、この画面からアプリの更新ができます。アプリのUIを表示しないフルスクリーンで表示されますが、強制では無く、アップデートをキャンセルしてアプリを使い続けることもできます。この点は発生している不具合によっては具合が良くない場合もありそうです


これを確認したアプリはAndroid 11以下で起動時にクラッシュしてしまうという問題があったので、その状態で発動を確認したかったのですが、手持ちのAndroid 9の端末では発動させることができませんでした。これがクラッシュに起因しているのか、OSバージョンによる制約なのかは不明です。
動作確認で問題がなければ、こちらの設定を反映します。
反映すると、最新のリリースとバンドルの一覧で対象のバージョンに「復元」というマークがつくようになります
さらに「リカバリー」タブを開くとどれだけのユーザーがアップデートをしたのかを確認することができます。
本機能が登場したときから気になっていたのですが、実際に試したところ、
- アプリが起動直後にクラッシュするような状況で発動するかは確認できなかった
- 反映してから端末でプロンプトが表示されるようになるまで、半日以上かかった(夜設定し、翌朝はまだ発動せず、夕方頃に発動することを確認)
ということで、こちらの機能は最終手段としてはありでしょうが、強制的なアップデートが必要という、致命的で緊急性のある状態で使えるかどうかはチョット微妙なところですね。
必要であればIn-App-Updateを使って強制アップデートを発動させるようにしておくなど、明示的な実装の仕込みをしておくほうが良さそうでした。
以上です。