React-native-iap: getProducts gibt immer null zurück

Erstellt am 13. Apr. 2018  ·  34Kommentare  ·  Quelle: dooboolab/react-native-iap

@dooboolab Ich

📱 iOS 🙏 help wanted 🤖 android

Hilfreichster Kommentar

@axelkennedal passiv aggressiv gegenüber den Menschen zu sein, die freiwillig ihre kostbare Zeit damit verbringen, Ihnen zu helfen, wird Sie nicht weit bringen.

@JJMoon @dooboolab danke für die tolle Arbeit

Alle 34 Kommentare

@ companytest1206 Dies sollte nicht passieren. Könnten Sie bitte weitere Informationen teilen? Wie Ihre Codes, Ihr Produktstatus, Betriebssystem, Geräte usw. Informationen zur Konfiguration von In-App-Produkten finden Sie im Blog .

Hier ist mein Code ..

async componentDidMount () {
Versuchen {
warte auf RNIap.prepare ();
const products = warte auf RNIap.getProducts (itemSkus);
console.log ('Produkte', Produkte);
}}
catch (err) {
console.warn (err.code, err.message);
}}
this.fetchData ();

}}

Mein App-Status befindet sich im Alpha-Modus. Verwenden von Nexus 6 zum Debuggen.

@ companytest1206 Dein Code scheint in Ordnung zu sein. Was ist mit Ihrer Produktkonfiguration in playstore oder itunesconnect ? Bitte folgen Sie der Readme-Datei und überprüfen Sie alles, was ich hier gepostet

Ich habe das gleiche Problem.

Ich habe das gleiche Problem, aber ich bekomme ein leeres Array (kein Null-Array, was auch immer das bedeuten soll). Ich stellte darüber hier .

@systemride @sanilcgs Könnten Sie bitte die Plattformen teilen, auf denen Sie Probleme mit der Methode getProducts ?

Ich habe Probleme damit unter Android 7.0 (läuft auf einem LG G6) und entwickle unter MacOS 10.13.4 @dooboolab

Erstellt meine App mit dem Paket create-react-native-app . Für die Integration des In-App-Kaufs habe ich meine App getrennt. Danach habe ich react-native-iap in meine App integriert. Für mich ist das Problem sowohl in iOS als auch in Android aufgetreten. Ich benutze Android Studio 3.0.1 und Xcode 9.3. @dooboolab

Laut dieser README-Datei einer anderen Bibliothek sollte es möglich sein, die verfügbaren Produkte abzurufen, wenn sie in einer Debug-Umgebung ausgeführt werden (keine Alpha / Beta-Version). Ist das richtig? (Ich denke, es sollte für diese Bibliothek dasselbe sein, da dies wahrscheinlich davon abhängt, wie Google mit dem IAP umgeht.)

Eine andere verwandte Frage; Soll den SKUs der Paketname vorangestellt werden? Mit anderen Worten; Ist "entsperren_premium" oder "com.kimer.unlock_premium" in meinem Code korrekt, wenn die in der Google Play Console angegebene ID "entsperren_premium" lautet ?

@axelkennedal Die SKUS haben kein Format, sind vollständig anpassbar. In wenigen Worten: "lock_premium" oder "com.kimer.unlock_premium" sind korrekt.

Ich verstehe, dass Sie eine Produkt-ID benennen können, wie Sie möchten, aber ich habe gefragt, was in meinem Code enthalten sein soll, wenn ich die ID "entsperren_premium" in der Google Play Console gewählt habe (nicht, ob ich beide "vorangestellt" habe) Google Play Console und in meinem Code). Sie sagen, dass die Auswahl der ID "entsperren_premium" in der Google Play Console sowohl mit "entsperren_premium" als auch mit "com.kimer.unlock_premium" zusammenarbeiten sollte, richtig? Ich denke, das muss irgendwo in der README angegeben werden, weil es verwirrend ist.

AKTUALISIEREN

Es funktioniert jetzt für mich 😄! Ich habe ein paar Dinge ausprobiert, bin mir aber nicht sicher, was der Schlüssel zum Funktionieren war. 🤔 Das habe ich sowieso getan:

  1. Installieren Sie das Paket neu
  2. Meine Importanweisung wurde von import InAppPurchase from "react-native-iap;" to "import * as InAppPurchase from 'react-native-iap';" geändert
  3. Meine SKU im Code wurde von "com.kimer.unlock_premium" in "refresh_premium" geändert.

@axelkennedal Sie müssen einen beliebigen Namen verwenden, müssen ihn jedoch in Google Play Console> Ihrer Anwendung> Google Play Store> in App-Produkten verwenden. Und der gleiche Name, den Sie für den Quellcode verwenden müssen.

@dooboolab Wenn ich versuche, RNIap.buyProduct (' * ') mit meiner Produkt-ID auszuführen, wird die Fehlermeldung angezeigt, dass dieses Element nicht verfügbar ist . Eigentlich ist mein verwaltetes Produkt im aktiven Zustand. Was wird das Problem sein? Ich kann die Produktdetails mit RNIap.getProducts (itemSkus) auflisten. Muss ich den Lizenzschlüssel zu meiner App hinzufügen?

@sanilcgs Kannst du mir sagen, auf welcher Plattform du Fehler hast?

@dooboolab Ich bin mit dem Problem in der Android-Plattform und Entwicklung unter MacOS High Sierra (10.13.4) konfrontiert.

@sanilcgs Verwenden Sie unser neueres Modul '0.3.23'? Ein ähnliches Problem finden Sie auch hier. https://github.com/dooboolab/react-native-iap/issues/142

@dooboolab Ja, ich verwende '0.3.23'. Mein Problem ist jetzt mit RNIap.buyProduct (' * ') .

@sanilcgs Ich habe in der obigen Ausgabe einige

         Do's

1) Erstellen Sie sign apk für Ihre Anwendung.
2) Lade deine apk im Google Play Store hoch.
3) Erstellen Sie ein Produkt für Ihre Anwendung.
4) Warten Sie 6-12 Stunden, bis der Artikel aktualisiert ist.
5) Geben Sie in Manifest.xml Abrechnungsberechtigungen an

           Don't

1) Verwenden Sie den Emulator nicht zum Testen, da er keine Abrechnungsdienste unterstützt.
2) Verwenden Sie keine nicht signierte apk für Abrechnungsdienste.

Lesen Sie mehr: http://www.androidhub4you.com/2013/03/how-to-inegrate-in-app-purchase-billing.html#ixzz5DqRctVJp

@dooboolab Wie ich bereits sagte, dass meine App nicht für die Produktion freigegeben ist. Jetzt habe ich nur meine Alpha-Version veröffentlicht. Kann ich dieses RNIap.buyProduct (' * * ') ** mit meiner Alpha-Version testen oder muss ich meine Produktion freigeben, um den Kauf zu testen?

@sanilcgs Wenn Sie oben gründlich lesen, sollten Sie sich bewusst sein, dass Sie apk nicht für die Produktion freigeben müssen. Nur Alpha oder Beta ist in Ordnung, aber Ihre Apk sollte wie erklärt unterschrieben sein. Überprüfen Sie oben noch einmal und sehen Sie zuerst, was Sie vermissen.

@dooboolab Die oben genannten Do's und Don'ts sind hilfreich. Für Noobs wäre dies sehr hilfreich, um in der Dokumentation zu erklären, dass Sie dies nur in einer Alpha / Beta-Version testen können. Wenn Sie dies in einem auf Emulatoren basierenden Entwickler testen, wird immer ein leeres Array zurückgegeben. Ich sehe nirgendwo eine Erwähnung davon. Gerne füge ich dies in eine Pull-Anfrage ein, wenn Sie möchten?

@systemride Jede PR wird geschätzt!

@axelkennedal hat all diese Dinge getan, ich bekomme immer noch ein leeres Array unter iOS. Irgendwelche Ideen?
Übrigens ... Ich teste immer noch auf einem Simulator. Ist es notwendig, es auf einem tatsächlichen iOS-Gerät zu testen?

@axelkennedal getProducts() in iOS funktioniert gut im Simulator. Kaufaktionen sollten auf dem realen Gerät mit Sandbox-Apple-Konto getestet werden.
Möglicherweise haben Sie die App Store-Produkteinstellungen nicht perfekt abgeschlossen.

@JJMoon Wenn Sie meine Kommentare lesen, hätten Sie gewusst, dass ich auf Android und nicht auf iOS bin.

@axelkennedal passiv aggressiv gegenüber den Menschen zu sein, die freiwillig ihre kostbare Zeit damit verbringen, Ihnen zu helfen, wird Sie nicht weit bringen.

@JJMoon @dooboolab danke für die tolle Arbeit

@raduflp lol wovon redest du? Ich habe nur darauf hingewiesen, dass wir uns auf verschiedenen Plattformen befinden

@raduflp Vielen Dank für Ihre freundliche Antwort und Besorgnis. Ich denke nicht, dass @axelkennedal aggressiv sein sollte. Er ist einfach zu überwältigt mit react-native-iap . Ich habe das Gefühl, dass dieses Problem geschlossen werden kann, also werde ich es schließen. Außerdem wird jedes PR geschätzt, das neuen Generationen helfen kann.

Versuch es. Arbeite für mich:

"Sie müssen Ihr Testkonto zusätzlich zu einer anderen speziellen Liste von Konten hinzufügen." Google Mail-Konten mit Testzugriff "finden Sie in der Einstellung für das Spielkonto (kein Projekt!). Auf der Seite, auf der Sie eine Liste Ihrer Projekte sehen, gehen Sie zu Einstellungen und dann auf der Seite "Kontodetails" (nach unten scrollen, fast am Ende der Seite) finden Sie die Liste "Google Mail-Konten mit Testzugriff".

Richten Sie die Anwendungslizenzierung ein
Um die Anwendungslizenzierung einzurichten, fügen Sie zunächst Ihre Liste der Google Mail-Adressen des Testers in die Play Console ein.

Gehen Sie zu Ihrer Spielekonsole.
Wählen Sie Einstellungen Einstellungen> Kontodetails.
Fügen Sie unter "Lizenztests" die Google Mail-Adressen Ihrer Tester hinzu.
Wählen Sie oben auf dem Bildschirm Speichern.

Ich habe das react-native-iap integriert und meine signierte apk zur Beta-Version im Play Store hochgeladen und außerdem ein Abonnement hinzugefügt. Ich versuche, die Liste der Abonnements anhand der Abonnement-ID im Debug-Modus abzurufen, der immer ein leeres Array zurückgibt. Kann ich das Abonnement tatsächlich im Debug-Modus testen?

@ShridharCodewave Sie verwenden ein echtes Gerät oder einen Simulator?

@ NarekChang Ich benutze ein echtes Gerät und jetzt

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen