Ich habe eine App im Google Play Store. Wenn eine Update-Version verfügbar ist, wird die ältere Version unbrauchbar. Wenn Benutzer die App nicht aktualisieren, treten sie nicht in die App ein. Wie kann ich Benutzer zwingen, die App zu aktualisieren, wenn eine neue Version verfügbar wird?
100
Antworten:
Ich stimme dem Punkt von Scott Helme in einer anderen Antwort hier zu. In einigen extremen Situationen (Sicherheitsprobleme, Änderungen an der API ...), in denen die Benutzer unbedingt aktualisiert werden müssen, um die App weiterhin verwenden zu können, können Sie eine einfache Versions-API bereitstellen. Die API würde folgendermaßen aussehen:
versionCheck API:
Parameter anfordern:
int appVersion
Antwort
boolean forceUpgrade
boolean recommendUpgrade
Wenn Ihre App gestartet wird, können Sie diese API aufrufen, die in der aktuellen App-Version übergeben wird, und die Antwort des Versions-API-Aufrufs überprüfen.
Wenn dies der Fall
forceUpgrade
isttrue
, zeigen Sie ein Popup-Dialogfeld mit Optionen an, mit denen Benutzer die App beenden können, oder rufen Sie den Google Play Store auf, um die App zu aktualisieren.Andernfalls
recommendUpgrade
wirdtrue
das Popup-Dialogfeld mit Optionen zum Aktualisieren oder zur weiteren Verwendung der App angezeigt.Selbst mit dieser erzwungenen Upgrade-Funktion sollten Sie weiterhin ältere Versionen unterstützen, sofern dies nicht unbedingt erforderlich ist.
quelle
Versuchen Sie Folgendes: Zuerst müssen Sie den Playstore-Link anfordern, die aktuelle Version von dort abrufen und dann mit Ihrer aktuellen Version vergleichen.
quelle
Sie sollten nicht aufhören, eine ältere Version zu unterstützen, sobald eine neue Version herauskommt. Dies führt zu einer schrecklichen Benutzererfahrung. Ich kenne keinen Softwareanbieter, der dies aus gutem Grund tut.
Was passiert, wenn der Benutzer zu diesem Zeitpunkt keine Aktualisierung durchführen kann oder möchte? Sie können Ihre App einfach nicht verwenden, was schlecht ist.
Google bietet keine Option für eine solche Versionsverfolgung, sodass Sie Ihre eigene rollen müssten. Ein einfacher Webdienst zur Rückgabe der aktuellen Live-Version, die Ihre App überprüfen kann, ist ausreichend. Sie können die Version dann aktualisieren und die App erkennt, dass sie veraltet ist. Ich würde nur empfehlen, dies zu verwenden, um Ihre Nutzer schneller als abhängig von Google Play über ein Update zu informieren. Es sollte nicht wirklich verwendet werden, um die Funktion der App zu verhindern, sondern nur, um den Benutzer zum Aktualisieren aufzufordern.
quelle
Lösung vom Google-Team
Ab Android 5.0 ist dies mit dem neuen Update-Mechanismus für Google Play In App leicht zu erreichen. Voraussetzung ist, dass Sie über die Play Core-Bibliothek der Version 1.5.0+ verfügen und anstelle von apks die ID-Verteilung der App-Bundles verwenden.
Die Bibliothek bietet Ihnen zwei verschiedene Möglichkeiten, um die Benutzer über das Update zu informieren:
Flexibel, wenn Benutzer die App weiterhin verwenden können, während sie im Hintergrund aktualisiert wird.
Sofortiger Blockierungsbildschirm, auf dem ein Benutzer die App erst betreten kann, wenn er sie aktualisiert.
Es gibt die nächsten Schritte, um es zu implementieren:
Alle diese Schrittimplementierungen werden auf der offiziellen Website ausführlich beschrieben: https://developer.android.com/guide/app-bundle/in-app-updates
quelle
Die Antworten von Scott und Michael sind richtig. Hosten Sie einen Dienst, der eine von Ihnen unterstützte Mindestversionsnummer bereitstellt, und vergleichen Sie diese mit der installierten Version. Sie sollten dies hoffentlich nie brauchen, aber es ist ein Lebensretter, wenn eine Version da draußen ist, müssen Sie unbedingt wegen eines schwerwiegenden Fehlers töten.
Ich wollte nur den Code für die nächsten Schritte hinzufügen. So starten Sie dann Google Play Intent und bringen sie zu Ihrer neuen Version im Store, nachdem Sie den Nutzer aufgefordert haben, ein Upgrade durchzuführen.
Sie sollten Ihr Design überdenken, wenn Sie Upgrades für jede Version erzwingen müssen.
quelle
Google hat die In-App-Updates lib eingeführt ( https://developer.android.com/guide/app-bundle/in-app-updates ). Es funktioniert auf Lollipop + und bietet Ihnen die Möglichkeit, den Benutzer nach einem Update mit einem netten zu fragen Dialog (FLEXIBLE) oder mit obligatorischer Vollbildmeldung (IMMEDIATE).
Letzteres müssen Sie implementieren. So wird es aussehen:
Ich habe den gesamten Code in dieser Antwort behandelt: https://stackoverflow.com/a/56808529/5502121
quelle
Ich empfehle dringend, die Remote Config- Funktionalität von Firebase zu überprüfen .
Ich habe es mit einem Parameter implementiert - app_version_enabled - mit der Bedingung "Disabled Android Versions", die folgendermaßen aussieht:
Die Standardeinstellung für den Parameter ist "true", deaktivierte Android-Versionen haben jedoch den Wert false. In meinem regulären Ausdruck für deaktivierte Android-Versionen können Sie weitere deaktivierte Versionen einfach mit einer anderen
|{version name}
in diesen Klammern hinzufügen .Dann überprüfe ich einfach, ob in der Konfiguration angegeben ist, dass die Version aktiviert ist oder nicht. Ich starte eine Aktivität, die den Benutzer zum Upgrade zwingt. Ich überprüfe nur die zwei Stellen, an denen die App extern gestartet werden kann (meine Standard-Launcher-Aktivität und eine Intent-Handling-Aktivität). Da Remote Config auf Cache-Basis arbeitet, werden "deaktivierte" Versionen der App nicht sofort erfasst, wenn die erforderliche Zeit für die Ungültigmachung des Caches nicht verstrichen ist. Dies sind jedoch höchstens 12 Stunden, wenn Sie vorbeikommen den empfohlenen Cache-Ablaufwert.
quelle
Offiziell bietet Google hierfür eine Android-API an.
Die Update- API ist ab sofort verfügbar - https://developer.android.com/guide/app-bundle/in-app-updates
quelle
überprüfe den Versionscode von local und play store apk
Klasse für Versionsprüfung implementieren
Dialob-Box zum Update
Dialoglayout
quelle
Es ist besser, unseren eigenen Prozess für das Upgrade zu definieren.
Android & iOS: Wenn die neueste App-Version verfügbar ist, wird die Warnung als "Neueste verfügbare Version mit mehr Funktionen" angezeigt. Um ein Upgrade durchzuführen, klicken Sie auf die Schaltfläche "Upgrade" (Warnung mit "Upgarde" und "Nein, danke"). Die App leitet dann weiter Playstore / Appstore und es wird die neueste Version geöffnet.
Stellen Sie vor dem Upgrade sicher, dass Sie den ordnungsgemäßen Datenbankmigrationsprozess durchgeführt haben, wenn sich das Datenbankschema ändert.
quelle
Um den App-Benutzer zum Aktualisieren zu zwingen, wenn ein Update auf dem Markt verfügbar ist, sollten Sie zuerst die App-Version auf dem Markt überprüfen und mit der Version der App auf dem Gerät vergleichen. Wenn sie unterschiedlich sind, ist möglicherweise ein Update verfügbar. In diesem Beitrag habe ich den Code zum Abrufen der aktuellen Marktversion und der aktuellen Version auf dem Gerät aufgeschrieben und miteinander verglichen. Ich habe auch gezeigt, wie der Aktualisierungsdialog angezeigt und der Benutzer zur Aktualisierungsseite umgeleitet wird. Bitte besuchen Sie diesen Link: https://stackoverflow.com/a/33925032/5475941 Stellen Sie einfach sicher, dass im Dialogfeld nur die Schaltfläche zum Aktualisieren des Benutzers und nicht die Schaltfläche zum Abbrechen angezeigt wird. In diesem Fall muss er ein Update durchführen, bevor er die App verwenden kann.
quelle
Was hier unbedingt erwähnt werden sollte, ist die in Kürze veröffentlichte In-App-Update-API .
quelle
Es ist eine gute Idee, die Remote-Konfiguration für die App-Version zu verwenden und die Startaktivität immer zu überprüfen, ob die aktuelle App-Version mit der Remote-Version identisch ist oder nicht, wenn keine Aktualisierung aus dem App Store erzwungen wird.
Einfache Logik Happy Coding ..
https://firebase.google.com/docs/remote-config/android
quelle
Sie können die In-App-Updates der Play Core Library verwenden, um dies zu beheben. Sie können die Verfügbarkeit von Updates überprüfen und diese installieren, falls sie nahtlos verfügbar sind.
In-App-Updates sind nicht mit Apps kompatibel, die APK-Erweiterungsdateien (OBB-Dateien) verwenden. Sie können entweder flexible Downloads oder sofortige Updates durchführen, die Google Play für Sie herunterlädt und installiert.
Verweisen Sie auf diese Antwort https://stackoverflow.com/a/58212818/7579041
quelle
Sie können dies tun, indem Sie eine Übereinstimmung zwischen einer Versionsnummer herstellen, die in einer Variablen in der App gespeichert ist, und in ähnlicher Weise die aktuelle App-Version auf der Serverseite. Jedes Mal, wenn der Benutzer die App öffnet, sollte die erste Anforderung gesendet werden, um zu überprüfen, ob sie gefunden wurde Beim Matching kann der Benutzer Ihre App nicht verwenden, da er sonst eine Absicht für den Google Playstore auslöst oder ein Webansichtsfenster für Ihre App öffnet (window.open (" https://play.google.com/store/apps/details?id= ") package_name ", '_system', 'location = yes');) und dort wird automatisch die Schaltfläche angezeigt, die nach Updates fragt. Dies ist, was Google Playstore für Sie tut, wenn Sie keine automatischen Updates haben.
quelle
Sie können Ihre Benutzer benachrichtigen, dass eine neue Version der aktuellen App zum Aktualisieren verfügbar ist. Wenn diese Bedingung erfüllt ist, können Sie die Anmeldung in der App blockieren.
Bitte prüfen Sie, ob dies die Lösung für Sie darstellt.
quelle
Nun, es könnte viele Lösungen für dieses Problem geben, wie das Abkratzen des Versionscodes von der App-Seite (Google Play App-Seite) usw.
Aber ich werde Ihnen die ultimative Lösung zeigen, die keinen Cent kostet und wie Magie funktioniert.
Config-Bereich
Vergleichen Sie es mit dem aktuellen Versionscode der App, den Sie mit dem folgenden Code erhalten
}}
Wenn der abgerufene Versionscode größer als die aktuelle Version ist, zeigen Sie einen AlertDialog an, in dem Sie aufgefordert werden, die App zu aktualisieren. Ansonsten ist die App bereits aktualisiert.
Wenn Sie die neue Version einführen, müssen Sie diesen neuen Versionscode in das Firebase Remote-Konfigurationsfenster einfügen
Sie können das gesamte Tutorial lesen, wie Benutzer gezwungen werden, die App mit Firebase Remote Config zu aktualisieren
quelle
Google hat In-App-Updates für die Play Core-Bibliothek veröffentlicht.
Ich habe eine einfache Bibliothek implementiert, um In-App-Updates einfach zu implementieren. Unter dem folgenden Link finden Sie ein Beispiel, wie Sie den Benutzer zwingen können, das Update durchzuführen.
https://github.com/dnKaratzas/android-inapp-update#forced-updates
quelle