wake-up-neo.com

Diese Version der Anwendung ist nicht für die Abrechnung über Google Play konfiguriert

Wenn ich versuche, meine Anwendung mit In-App-Abrechnung auszuführen, erhalte ich die Fehlermeldung: "Diese Version der Anwendung ist nicht für die Abrechnung über Google Play konfiguriert. Weitere Informationen finden Sie in der Hilfe.".

Ich habe die Abrechnungserlaubnis bereits in der Manifest-Datei, und ich habe ein signiertes .apk als Entwurf auf Google Play hochgeladen. Außerdem habe ich dasselbe signierte apk auf meinem Handy installiert.

Hilfe zur Lösung dieses Problems?

236
Gatekeeper

Ahh fand die Lösung, nachdem er einige Stunden versucht hatte.

  1. Es dauert eine Weile, bis Google Anwendungen verarbeitet und auf ihren Servern aktualisiert. Für mich dauert es etwa einen halben Tag. Nachdem Sie die APK als Entwurf bei Google Play gespeichert haben, müssen Sie einige Stunden warten, bevor die In-App-Produkte normal reagieren und regelmäßige Einkäufe zulassen.
  2. APK exportieren und unterschreiben. Unsignierte APK, die versuchen, Einkäufe zu tätigen, erhalten einen Fehler.
183
Gatekeeper

Dieser Fehler kann verschiedene Ursachen haben. 

Hier ist die Liste der Anforderungen für den Google IAB-Test.

Voraussetzungen:

  1. AndroidManifest muss die Berechtigung "com.Android.vending.BILLING" enthalten.
  2. APK ist im Release-Modus eingebaut.
  3. APK ist unterzeichnet mit den Freigabezertifikaten.
  4. APK wird mindestens einmal auf die Entwicklerkonsole (vorher als Entwurf) in den alpha/beta distribution -Kanal hochgeladen. (dauert einige Zeit ~ 2h-24h).
  5. IAB products werden veröffentlicht und ihr Status wird auf active gesetzt.
  6. Testkonto (e) wird in der Entwicklerkonsole hinzugefügt.

Testanforderungen:

  1. Test-APK hat den gleichen Versionscode wie der in die Entwicklerkonsole hochgeladene.
  2. Test-APK ist signiert mit den gleichen Zertifikaten wie dem in dev.console hochgeladenen Zertifikat.
  3. Testkonto (nicht Entwickler) - ist das Hauptkonto auf dem Gerät. (Hauptkonto ist möglicherweise nicht erforderlich - gemäß @MinosL Kommentar)
  4. Testkonto ist als Tester aktiviert und ist mit einer gültigen Zahlungsmethode verknüpft. ( @Kyone )

P.S: Debugging mit Freigabezertifikat: https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp für den Link)

P.P.S: Wollte diese Liste schon lange machen.

Thnx @zlgdev , @Kyone , @MinosL für Updates

288
Luten

Dasselbe passiert, wenn Ihre veröffentlichte Version nicht der Version entspricht, die Sie auf Ihrem Telefon testen. 

Die hochgeladene Version ist beispielsweise Android:versionCode="1" und die Version, die Sie auf Ihrem Telefon testen, ist Android:versionCode="2".

129
sandalone

Sie müssen Ihre APK mit Ihrem Live-Zertifikat unterzeichnen. Dann installieren Sie das auf Ihrem Testgerät. Sie können dann InAppBilling testen. Wenn Sie Ihre Anwendung durch direktes Ausführen über Eclipse auf das Gerät testen (Im Debug-Modus), wird dieser Fehler angezeigt.

Wenn Sie Android.test.purchased als SKU verwenden, funktioniert es zwar vollständig, aber Sie haben nicht die DeveloperPayload in Ihrer endgültigen Antwort.

Wenn Sie Ihren eigenen Entwurf in einem App-Element verwenden, können Sie den gesamten Test testen. Sie werden jedoch in Rechnung gestellt und müssen diesen Betrag anschließend selbst erstatten.

Sie können keine Artikel mit demselben Google Mail-Konto kaufen, das Sie für die Google Play-Entwicklungskonsole verwenden.

45
Chirag Patel

Wenn Sie ab 2018 hier sind, müssen Sie das APK direkt vom Play Store herunterladen und das "abgeleitete" APK installieren. Möglicherweise liegt es daran, dass der Play Store von Google über die Funktion "App Signing by Google Play" verfügt.

9
Law Gimenez

In der Entwicklerkonsole:

Settings -> Account details -> License Testing -> Google Mail-Konten mit Testzugriff

und geben Sie hier Ihre Konten ein

8
Pablo Cegarra

Lassen Sie mich einfach hinzufügen, was mit mir passiert ist, kann jemandem helfen.

Dies war hauptsächlich auf die Unterzeichnung zurückzuführen.

Da ich die Signierdetails in die Projektstruktur eingefügt habe, dachte ich, dass jedes Mal, wenn ich laufe, erwartet wird, dass signierte apk installiert werden. Der Build-Typ 'debug' wurde ausgewählt.

Im Folgenden wurde das Problem für mich behoben.

  • Generierte signierte apk vom Build-Typ 'release'.
  • Installierte den apk manuell.
3
Shree Harsha S

Dies geschieht, wenn Sie eine andere Version der apk verwenden als die im google play.

2
Amalka

Hatte das gleiche Problem und es wurde nicht gelöst, bevor ich den Beitrag von DZDomi gelesen habe. Es kam plötzlich vor, dass in der Google Developer Console eine Einstellung vorhanden ist, die Sie aktivieren müssen. Im Abschnitt "In App-Käufe" gibt es eine Zeile für Ihr Produkt und ganz rechts einen Status dafür. Es sollte AKTIV sein!

1
Søren

Im Gegensatz zu vielen Antworten und Kommentaren zu SO und anderen Websites müssen Sie KEINE vorläufigen Tests mit einer Alpha/Beta-Version Ihres Produkts durchführen, die von Google Play auf Ihr Testgerät (die Alpha/Beta-Publikation) heruntergeladen wurde Prozess frisst oft einen halben Tag). Sie müssen auch keine signierte Version von Ihrem Entwicklerstudio auf Ihr Testgerät laden und erneut laden.

Sie können vorläufige Google Play-Dienste in App-Abrechnungsdiensten debuggen, indem Sie die Debug-App verwenden, die von Ihrem Entwicklerstudio über ADB direkt auf Ihr Testgerät geladen wird. Wenn Fehler auftreten, die dies verhindern, haben Sie wahrscheinlich etwas in Ihrem Code falsch gemacht. Achten Sie besonders auf den CASE Ihrer SKUs (Produkt-IDs) und auf ihr Format (wenn Sie beispielsweise Ihre APK als com.mydomain.my_product_id laden, stellen Sie sicher, dass Sie versuchen, sie auf diese Weise zu erwerben - wobei derselbe Fall und die gleiche Domäne angegeben werden) . Achten Sie besonders auf Ihren itemType - dies sollte entweder "inapp" oder "subs" für verwaltete/nicht verwaltete App-Käufe bzw. Abonnements sein.

Wie von Chirag Patel vorgeschlagen, sollten Sie, sofern Sie Ihren Rechnungscode ordnungsgemäß festgelegt haben, alle Tests mit der Android.test.purchased Sku (Produkt-ID) während Ihrer Vorversuche durchführen. Überprüfen Sie diese ID während Ihrer Abrechnungsvorgänge, um sie durch Signatur-, Token- und Payload-Prüfungen zu übergeben, da diese Daten nicht vom Google-Testsystem bereitgestellt werden. Vergeben Sie zusätzlich einem Ihrer Testprodukte diese ID, um den Kauf, das Entsperren/Laden und die Präsentation des gesamten Schemas zu testen. Um den Kauf zu LÖSCHEN, konsumieren Sie ihn einfach, indem Sie dieselbe Sku UND einen Token-String übergeben, der auf diese Weise formatiert ist - keine anderen Felder sind relevant:

    "inapp:"+appContext.getAppContext().getPackageName()+":Android.test.purchased";

Wenn Sie diese Testphase abgeschlossen haben, können Sie mit Ihrem Alpha/Beta-Produkt Semi-Live-Tests durchführen. Erstellen Sie eine Google-Gruppe (im Wesentlichen eine Mailingliste), fügen Sie die E-Mails Ihrer Testbenutzer hinzu und fügen Sie diese Gruppe hinzu bzw. laden Sie sie ein, um Ihr Gerät in dieser Phase (im APK-Abschnitt des Google-Entwicklerlistens Ihrer App) zu testen. Einkäufe werden simuliert, aber nicht tatsächlich berechnet. Wenn Sie die Einkäufe jedoch freigeben und erneut testen möchten, gibt Google an, dass Sie sie von Ihrem Google Wallet zurückerstatten müssen. Dies ist die einzige Testphase, die den zeitaufwändigen Prozess der Verwendung von Alpha-/Beta-Lasten und Testbenutzern erfordert.

1
Epsilon3

Wenn Sie IAB debuggen möchten, müssen Sie Folgendes tun:

  1. Senden Sie eine Version Ihrer App, um die Version von Google mit der IAB-Berechtigung für das Manifest abzuspielen:

  2. Fügen Sie Ihrer App bei google play ein Produkt hinzu: Verwalten der In-App-Abrechnung

  3. Legen Sie einen benutzerdefinierten Debug-Keystore mit Signatur fest: Eclipse für die Verwendung eines signierten Keystores konfigurieren

1
Pablo

In meinem Fall sah ich dieselbe Nachricht aufgrund der unterschiedlichen Signaturen des installierten APK und eines auf den Markt hochgeladenen APK.

1
goRGon

Ein weiterer Grund, der hier nicht erwähnt wird, ist der, dass Sie auf einem echten Gerät testen müssen. Da der Emulator wirklich gut wird, ist es ein einfacher Fehler. 

0
JDenais

mein Problem war, dass ich versucht habe, es mit dem debug.keystore zu überprüfen. Ich meine, es durch Eclipse laufen zu lassen mein Telefon und dann könnte ich es normal testen.

0
Gal Rom

Das Problem tritt auch auf, wenn Sie nach dem Hochladen des apk einen In-App-Kauf hinzugefügt haben, die Anwendung jedoch nicht im Play Store (Alpha, Beta und Produktion) veröffentlicht wurden. 

Was im Wesentlichen bedeutet, dass Sie den In-App-Kauf hinzufügen müssen, nachdem Sie die apk im Play Store veröffentlicht haben (Alpha, Beta und Produktion). Andernfalls können Sie den In-App-Kauf nicht erwerben oder abfragen.

0
DZDomi

LÖSUNG

Warten Sie nach dem Hochladen Ihrer App im Play Store, da Google einige Zeit benötigt, um die App-Versionen zu aktualisieren. Es wird funktionieren!

0
Ali Akram

Ich habe das gleiche Problem in Moto c2 + in meinem Fall ist es Geräteproblem, sobald ich restart dann läuft es perfekt.

0
Sagar Pithiya