最近、GoogleはGoogle I/O 2019で「アプリ内アップデート」を導入しました。
だから私はそれを使おうとしています。
_val appUpdateManager = AppUpdateManagerFactory.create(this)
val appUpdateInfo = appUpdateManager.appUpdateInfo
appUpdateInfo.addOnCompleteListener {
val result = it.result
if (result.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
&& result.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
info("should show update")
appUpdateManager.startUpdateFlowForResult(
result,
AppUpdateType.FLEXIBLE,
this,
1)
} else {
info("This is already latest version: ${result.updateAvailability()}")
}
}
_
ただし、result.updateAvailability()
は常に_UpdateAvailability.UPDATE_NOT_AVAILABLE
_です。
これを行うために、以前のバージョンのコードで署名付きリリースAPKを作成しました。しかし、それは機能しません。
Developer Keynote(16:40〜) のデモによると
彼はエミュレータでそれをやっています。デバッグモードのようです。
どうすればこれと同じことができますか?
アプリ内アップデートをテストする正しい方法は、内部アプリ共有を使用することです(内部テストトラックと混同しないでください)。
./gradlew bundleRelease
または./gradlew bundle<variant>
です。aab
ファイルをapp/build/outputs/bundle/<variant>/
の下にアップロードします。バージョンコードを含む適切な名前を付けます。build.gradle
にバージョンコードを追加し、別のバンドルをビルドします。プロンプトおよびが表示されない場合は、これらの手順を正確に実行した場合、おそらくコードに問題があります。ロギングを追加して、コードで何が起こっているかを確認します。
私たちのテストでは、以下はアプリ内アップデート(他の場所で提案されたもの)のテストに役立ちませんでした:
私の場合、私は次のステップを実行しました:
起動すると、Google Playストアで新しいバージョンを確認し、アップデートするためのアシスタントを表示します。このソリューションがデバイスでは機能するが別のデバイスでは機能しない場合は、同じGoogleアカウントでログインして、このデバイスで5つの手順をもう一度試してください。その後、元のアカウントを再び使用できます。なんらかの奇妙な理由により、Google Playがバージョン管理を「アクティブ化」し、残りのデバイスでバージョンが再び利用可能になったように見えます。
正確な動作はわかりません...
うーん...私は解決策を見つけました。 Google I/O 2019-デベロッパーキーノートのデモとは異なります。
署名済みリリースAPKを内部開発者バージョンに公開しました。そして、それはうまくいきます。
または、「Alpha/Betaクローズテストパブリッシュ」でパブリッシュできます。
この時点ですでにそれがダウンしているかどうかはわかりませんが、しばらくしてテストした後、versionName
を減らすことは、適切にテストするために必要なことであることがわかりました。 versionCode
を減らすことだけをテストしました... versionName
またはversionCode
が古くなっているときはいつでもAPIで処理できるはずですが、そうではないようです。
Google Play Consoleの内部テストトラックは、アプリ内アップデートをテストするときに使用する優れたツールです。
私にとっては、 docs のトラブルシューティングセクションの最後のステップでうまくいきました。
基本的に、アプリのバージョン(バージョン名とコード)を変更した後、次のようにします。
アカウントが対象であり、Google Playキャッシュが最新であることを確認します。これを行うには、テストデバイスでGoogle Playストアアカウントにログインして、次の手順に従います。
Google Playストアアプリを完全に閉じてください。
Google Playストアアプリを開き、[マイアプリ&ゲーム]タブに移動します。
テストしているアプリに利用可能なアップデートが表示されない場合は、テストトラックが適切に設定されていることを確認してください。