Récemment, Google a introduit des `` mises à jour intégrées à l'application '' dans Google I/O 2019.
J'essaie donc de l'utiliser.
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()}")
}
}
Mais la result.updateAvailability()
est toujours UpdateAvailability.UPDATE_NOT_AVAILABLE
.
Pour ce faire, j'ai fait une version apk signée avec le code de la version précédente. Mais ça ne marche pas.
Selon la démo du Developer Keynote (16:40 ~)
Il le fait avec l'émulateur. Cela ressemble au mode débogage.
Comment puis-je faire la même chose?
La bonne façon de tester la mise à jour dans l'application est d'utiliser le partage d'application interne (à ne pas confondre avec Internal Testing Track).
./gradlew bundleRelease
ou ./gradlew bundle<variant>
.aab
généré qui se trouve sous app/build/outputs/bundle/<variant>/
. Donnez un nom décent qui inclut le code de version.build.gradle
et créez un autre ensemble.Si vous ne voyez pas l'invite et si vous avez suivi ces étapes exactement, il y a probablement un problème avec votre code. Ajoutez un peu de journalisation pour voir ce qui se passe dans votre code.
Lors de nos tests, les éléments suivants n'ont PAS aidé à tester les mises à jour dans l'application (qui ont été suggérées ailleurs):
Dans mon cas, j'ai fait les étapes suivantes:
Lorsqu'il démarre, il vérifie la nouvelle version dans Google Play Store et montre à l'assistant de la mettre à jour. Si cette solution fonctionne sur un appareil mais pas sur un autre, essayez de vous connecter avec le même compte Google et recommencez les 5 étapes sur cet appareil. Ensuite, vous pouvez à nouveau utiliser votre compte d'origine. Pour une raison folle, il semble que Google Play "active" le contrôle de version et il renvoie qu'une version est à nouveau disponible dans le reste des appareils.
Je ne connais pas exactement le comportement ...
Vous pouvez également utiliser cette classe comme test UNIT pour la simulation des mises à jour intégrées à l'application
Cela a quelques méthodes prédéfinies.
Hmm ... j'ai trouvé la solution. Ce n'est pas la même chose que la démo sur Google I/O 2019 - Developer Keynotes.
J'ai publié la version signée apk dans la version développeur interne. Et ça marche bien.
Ou vous pouvez le publier sur le "Alpha/Beta close test publish".
Je ne sais pas si à ce moment-là vous l'avez déjà baissé, mais après un certain temps de test, j'ai compris que diminuer le versionName
était ce que je devais faire pour pouvoir le tester correctement, avant de testé ne diminuant que le versionCode
... Je pense que l'API devrait être capable de gérer chaque fois que le versionName
ou versionCode
sont obsolètes, mais apparemment ce n'est pas le cas.
Les pistes de test internes dans la console Google Play sont un excellent outil à utiliser lors du test des mises à jour intégrées à l'application.
Pour moi, la dernière étape de la section Dépannage dans docs l'a fait fonctionner!
Fondamentalement, après avoir modifié la version de l'application (nom et code de version), procédez comme suit:
Assurez-vous que le compte est éligible et que le cache Google Play est à jour. Pour ce faire, lorsque vous êtes connecté au compte Google Play Store sur l'appareil de test, procédez comme suit:
Assurez-vous de fermer complètement l'application Google Play Store.
Ouvrez l'application Google Play Store et accédez à l'onglet Mes applications et jeux.
Si l'application que vous testez n'apparaît pas avec une mise à jour disponible, vérifiez que vous avez correctement configuré vos pistes de test.