React-native-iap: iOS 14: getProducts () Unbekannter Fehler (RN 0.62.2 - 0.63)

Erstellt am 18. Sept. 2020  ·  50Kommentare  ·  Quelle: dooboolab/react-native-iap

RNIap.getProducts () scheint in der neuesten Version von React Native fehlerhaft zu sein und gibt nur einen unbekannten Fehler zurück.

Version von react-native-iap

4.6.1

Version von React-Native

0,63,0

Plattformen, auf denen Sie den Fehler hatten (IOS oder Android oder beides?)

iOS

Erwartetes Verhalten

zu holende Produkte.

Tatsächliches Verhalten

Unbekannter Fehler wird zurückgegeben

Getestete Umgebung (Emulator? Reales Gerät?)

iOS Simulator

Schritte zum Reproduzieren des Verhaltens

Rufen Sie einfach RNIap.getProducts () oder RNIap.getSubscriptions () auf.

📱 iOS 🙏 help wanted

Hilfreichster Kommentar

Alle 50 Kommentare

Ich habe dies auch mit iOS-Simulatoren erlebt, auf denen iOS 14.0 ausgeführt wird, die jedoch keine Probleme mit anderen Simulatorversionen (insbesondere iOS 13.5) haben.

Dies scheint ein Problem für Apple mit dem iOS 14.0-Simulator zu sein: https://developer.apple.com/forums/thread/125164

Diesen Link gefunden über: https://github.com/dooboolab/react-native-iap/issues/1091

Danke @joeyscarim. Ich habe mich jetzt an Apple gewandt und warte auf Feedback von ihnen.

@rossbulat gleiches Problem unter iOS 14 ...
react-native-iap - v4.6.1
Xcode - v12

YellowBox.js:71 Possible Unhandled Promise Rejection (id: 0): Error: UNKNOWN_ERROR Error: UNKNOWN_ERROR at Object.fn [as getItems] (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:2165:36) at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179261:33 at step (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178999:21) at Object.next (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178929:16) at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178901:69 at tryCallTwo (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3277:7) at doResolve (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3441:15) at new Promise (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3300:5) at __awaiter (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178880:12) at ios (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179258:16)

Hallo allerseits,

Wir erleben dies auch. Nach dem Upgrade auf v4.6.1 tritt fast jedes Mal der "unbekannte Fehler" auf.

Screenshot 2020-09-23 at 09 53 25

Hallo Leute,
Ich glaube, ich habe die Lösung für unser Problem gefunden. Sie müssen sicher sein, dass initConnection wird.
In meinem Beispiel habe ich einfach requestPurchase/requestSubscription in initConnection . Bevor es ohne es funktionierte, ist es jetzt ein Muss.

@Hellhiem Ich habe initConnection und erhalte immer noch den Fehler.

Durch Ausführen der folgenden Funktion wird überprüft, ob der Fehler bei initConnection () weiterhin vorhanden ist.

  const getProducts = async () => {
      try {
        await RNIap.initConnection();
        const products: RNIap.Product[] = await RNIap.getProducts(IAP_SKUS);
      } catch (err) {
        console.log(err);
      }
  }

@rossbulat was passiert, wenn du das versuchst:

const getProducts = async () => {
    return RNIap.initConnection().then(() => {
      try {
        const products: RNIap.Product[] = RNIap.getProducts(IAP_SKUS);

        return products;
      } catch (err) {
        console.log(err);
      }
    });
  };

Ich habe das Gleiche gemacht, aber in then ich requestPurchase/requestSubscription

@Hellhiem Immer noch unbekannter Fehler! (Dies ist der gleiche wie mein Code, verwendet jedoch anstelle der asynchronen / wartenden Syntax).

Ich habe mir die nativen Modul-APIs angesehen. Die Funktion getItems() scheint der Fehlerpunkt zu sein. Kann einer der Kernentwickler überprüfen, ob dieser native API-Aufruf unter iOS 14 wie erwartet funktioniert?

@Hellhiem Ich habe Ihren Code ausprobiert und

Apple Engineering untersucht den Fall über den Feedback-Assistenten. Ich werde diesen Thread aktualisieren, sobald wir feststellen, wo das Problem liegt.

Ich habe dieses Problem im iOS-Simulator mit iOS 14.0

Gleicher Fehler. IOS 14 Simulator mit xcode 12 kann keine Produkte abrufen und unbekannte Fehler auslösen

Gleicher Fehler.

Gleiches Problem für echtes Gerät während der Apple-Überprüfung

Ich habe das gleiche Problem, aber mit der Funktion getSubscriptions

Ich habe einige Tests durchgeführt und für mich gibt [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers] nur leer zurück ...

gleicher Fehler

Haben Sie das gleiche Problem mit getSubscriptions auf der IOS-Seite, UNKNOWN_ERROR wurde ausgelöst, Xcode 12.0, React-Native 0.62.2

@rossbulat Glück? Ich stoße auch auf das gleiche Problem

@rossbulat Glück? Ich stoße auch auf das gleiche Problem

Verwenden Sie ein Gerät oder einen Simulator?

Hallo Entwickler, ich habe es gelöst. Ich habe folgendes getan

  1. Ich habe sichergestellt, dass ich alle Bedingungen in Benutzervereinbarungen akzeptiert habe
  2. Ich habe sichergestellt, dass die Produkt- / Abonnement-ID im Bereich "In-App-Käufe" Ihrer App als einreichungsbereit markiert ist

PS: Mein Test war auf einem lokalen Gerät

Das Problem betrifft ausschließlich den iOS 14 Simulator. Echte Geräte funktionieren.

Apple ist in der letzten Woche ruhig geworden, es wurden keine Updates mit mir geteilt.

Für den Simulator sollten Sie die StoreKit-Konfigurationsdatei zum Projekt hinzufügen und in Ihrem Ausführungsschema auswählen. Aber ich hatte diesen Fehler auf dem Gerät

Das Problem betrifft ausschließlich den iOS 14 Simulator. Echte Geräte funktionieren.

Apple ist in der letzten Woche ruhig geworden, es wurden keine Updates mit mir geteilt.

Wahrscheinlich ist das Testen bei App-Käufen jetzt auf echte Geräte beschränkt, da ich die Option zum Hinzufügen eines Sandbox-Testers zum iOS-Simulator nicht finden kann

Das Problem betrifft ausschließlich den iOS 14 Simulator. Echte Geräte funktionieren.

Apple ist in der letzten Woche ruhig geworden, es wurden keine Updates mit mir geteilt.

Wahrscheinlich ist das Testen bei App-Käufen jetzt auf echte Geräte beschränkt, da ich die Option zum Hinzufügen eines Sandbox-Testers zum iOS-Simulator nicht finden kann

Es wird von der Storekit-Konfigurationsdatei verwaltet

@ilyasbat Ich habe diese Anweisungen befolgt, den Build-Ordner bereinigt und neu erstellt, aber leider immer noch den Fehler erhalten.

Ich habe durch Strorekit Config gelöst.
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Hinzufügen der Storekit-Konfigurationsdatei, Neuerstellung und Ausführung auf dem IOS 14-Simulator mit xcode 12. Es funktioniert einwandfrei und ich kann zum ersten Mal Artikel auf dem Simulator kaufen.

@ilyasbat ist dieses storeConfiguration.storekit hängen?

@ilyasbat ist dieses storeConfiguration.storekit hängen?

Fand diesen wirklich guten Artikel:
https://www.appcoda.com/storekit-testing/

Nach dem, was ich lese, sieht es so aus, als ob die StoreKit-Konfigurationsdatei nur zum Debuggen / Testen dient:

Das nächste Feld ist der Preis des In-App-Kaufs. Obwohl es im App Store Connect Preisstufen gibt, können wir hier jeden gewünschten Wert als Freitext bereitstellen. Der Preis dient nur Testzwecken, gilt nicht für echte In-App-Käufe und es fallen natürlich keine Gebühren an. Sie können also jederzeit einen beliebigen Preis festlegen. Für diesen speziellen In-App-Kauf, den wir hier konfigurieren, ist der Wert 0,99 in Ordnung. Die Währung des Preises ist die Währung, die mit dem Gebietsschema des Simulators übereinstimmt, oder mit jedem Gebietsschema, das manuell ausgewählt wurde (wir werden später darauf eingehen). 0,99 können also Dollar, Euro, Yen usw. sein.

Ich bin mir nicht sicher, ob dies noch bekannt ist (ich habe es oben nicht erwähnt): Ich habe festgestellt, dass ich immer wieder Error: UNKNOWN_ERROR bekomme, wenn ich npx react-native run-ios vom Terminal aus starte, aber wann Ich starte die App über xcode, der In-App-Kauf (mit Storekit) funktioniert einwandfrei.

"react-native": "0.61.4",
"react-native-iap": "^4.6.3",

xcode v12
macos 10.15.7

Derzeit ist es daher nicht möglich, React-Native-IAP in der Produktion auf einem Gerät mit iOS 14 zu verwenden. Da die einzige Möglichkeit, das [Error: UNKNOWN_ERROR] zu beheben, darin besteht, eine Configuration.StoreKit -Datei hinzuzufügen, jedoch nur zu Testzwecken, nicht für eine Produktionsversion?

Hat jemand eine andere Lösung?

Ich verwende diese Bibliothek derzeit für den In-App-Kauf in der Produktion, für Android und iOS (also ja für iOS 14). Ich konnte Benutzer erfolgreich in TestFlight testen lassen (Hinweis: Sie können keine Fingerabdruck-Anmeldung verwenden, sie müssen immer die Apple-ID und das Kennwort eingeben - dies ist eine Apple-Richtlinie, kein Fehler dieser Bibliothek) und die Dinge funktionieren in der Produktion .

Haben Sie versucht, Ihre App in TestFlight @RobinChailley zu testen ?

Ich habe 2 meiner realen Geräte unter IOS 14.1, die wieder mit Sandbox-Konten arbeiten, wie folgt.

Befolgen Sie die Schritte, um die StoreKit-Konfiguration zu erstellen, wählen Sie sie in Ihrem Ausführungsschema aus und erstellen Sie sie dann auf Ihrem Gerät. Ich bin mir nicht sicher, ob dieser Schritt erforderlich ist, aber ich hole einige Produkte. Sie können zu diesem Zeitpunkt einen Kauf tätigen, aber der Kauf-Listener wird einen Fehler machen, da die Transaktions-ID aus Käufen "0" ist.

Deaktivieren Sie anschließend die StoreKit-Konfiguration aus dem Ausführungsschema und erstellen Sie sie erneut auf Ihrem Gerät. Dieses Mal werden Sie beim Abrufen von Produkten aufgefordert, sich anzumelden. Aus irgendeinem Grund kann ich mich jetzt mit meinen Sandbox-Konten anmelden. Ich weiß nicht warum, aber vielleicht wird etwas gelöscht oder zurückgesetzt.

@karltaylor Ja, meine In-App-Käufe wurden beim Testen in TestFlight angezeigt. Mein Code sieht ungefähr so ​​aus:

try {
    IAP.initConnection()
        .then((success) => {
            if (!success) return Promise.reject("Failed to connect");

            // get products that can be purchased in iap store
            // Note: this is necessary for requestPurchase to work!
            const productIds = [PRODUCT_ID];
            return IAP.getProducts(productIds);
        })
        .then((prods) => {
            // get already-purchased items
            return getAvailablePurchases();
        })
        .then((purchases) => {
            // continue...
        })
}

Hinweis: Mein PRODUCT_ID stimmte mit dem Text in der Spalte "Produkt-ID" in _appstoreconnect -> App Store -> Manage_ überein.

Wie ist der "Status" Ihrer In-App-Käufe in _appstoreconnect_?

@karltaylor Ja, meine In-App-Käufe wurden beim Testen in TestFlight angezeigt. Mein Code sieht ungefähr so ​​aus:

try {
    IAP.initConnection()
        .then((success) => {
            if (!success) return Promise.reject("Failed to connect");

            // get products that can be purchased in iap store
            // Note: this is necessary for requestPurchase to work!
            const productIds = [PRODUCT_ID];
            return IAP.getProducts(productIds);
        })
        .then((prods) => {
            // get already-purchased items
            return getAvailablePurchases();
        })
        .then((purchases) => {
            // continue...
        })
}

Hinweis: Mein PRODUCT_ID stimmte mit dem Text in der Spalte "Produkt-ID" in _appstoreconnect -> App Store -> Manage_ überein.

Wie ist der "Status" Ihrer In-App-Käufe in _appstoreconnect_?

Sorry @Beamanator Ich habe meine Kommentare entfernt, um mehr Verwirrung zu vermeiden, da es sich um ein Problem mit einem anderen Bereich handelt.

Nachdem ich die Configuration.storekit -Datei hinzugefügt hatte, arbeiteten sie in meinem Simulator und in Testflight! 👍

@rossbulat Konnten Sie eine Lösung für dieses Problem finden? Ich bekomme Probleme sowohl auf Android als auch auf iOS.

Ich bin mir nicht sicher, ob dies noch bekannt ist (ich habe es oben nicht erwähnt): Ich habe festgestellt, dass ich immer wieder Error: UNKNOWN_ERROR bekomme, wenn ich npx react-native run-ios vom Terminal aus starte, aber wann Ich starte die App über xcode, der In-App-Kauf (mit Storekit) funktioniert einwandfrei.

"react-native": "0.61.4",
"react-native-iap": "^4.6.3",

xcode v12
macos 10.15.7

Es ist okay für mich
"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12
macos 11.0.1

es funktionierte so im Debug-Modus, aber nicht im Testflug. Hätte es eine andere Konfiguration?

Ich erhalte immer noch den gleichen "Unbekannten Fehler" unter iOS.

"react-native": "^0.63.4",
"react-native-iap": "^5.2.0",

Xcode 12.2

Haben Sie eine Idee, um dieses Problem zu lösen, ohne die StoreKit-Konfiguration zu verwenden?

Ich erhalte immer noch den gleichen "Unbekannten Fehler" unter iOS.

"react-native": "^0.63.4",
"react-native-iap": "^5.2.0",

Xcode 12.2

Haben Sie eine Idee, um dieses Problem zu lösen, ohne die StoreKit-Konfiguration zu verwenden?

Welche Version des Simulators haben Sie verwendet?
Gleiches Problem mit iOS 14.2 und funktioniert gut mit iOS 13.5

Das Gleiche gilt für mich unter Simulator iOS 14.2 und funktioniert einwandfrei mit Simulator iOS 13.x.

Und ich habe das gleiche Problem mit dem Apple-Validierungsteam. Ich denke, sie führen meine App auf einem Simulator aus ...

Wir haben festgestellt, dass Ihre In-App-Kaufprodukte einen oder mehrere Fehler aufwiesen, als sie auf einem iPad mit iOS 14.0.1 unter Wi-Fi überprüft wurden.

  • App gestartet
  • Tippen Sie oben links auf die Einstellungen
  • Tippen Sie auf Anzeigen entfernen
  • Die App wurde auf unbestimmte Zeit geladen

Jemand hier hat bereits versucht, nicht verbrauchbare In-App-Käufe in der Produktion zu veröffentlichen?

Das Gleiche gilt für mich unter Simulator iOS 14.2 und funktioniert einwandfrei mit Simulator iOS 13.x.

Und ich habe das gleiche Problem mit dem Apple-Validierungsteam. Ich denke, sie führen meine App auf einem Simulator aus ...

Wir haben festgestellt, dass Ihre In-App-Kaufprodukte einen oder mehrere Fehler aufwiesen, als sie auf einem iPad mit iOS 14.0.1 unter Wi-Fi überprüft wurden.

  • App gestartet
  • Tippen Sie oben links auf die Einstellungen
  • Tippen Sie auf Anzeigen entfernen
  • Die App wurde auf unbestimmte Zeit geladen

Jemand hier hat bereits versucht, nicht verbrauchbare In-App-Käufe in der Produktion zu veröffentlichen?

Sie haben auch Verzögerungen bei der Genehmigung von Preisen und Apple genehmigt Ihren Antrag nicht, weil Sie nicht kaufen können?

Ich habe alle meine Tests auf einem realen Gerät mit einem Sandbox-Benutzer durchgeführt. Alles funktioniert, um das Produkt zu kaufen, aber Apple lehnt meinen Build wegen des Fehlers "UNKNOW PRODUCT" auf dem Simulator (iOS 14) ab.

Ich versuche, diese App-Version mit einem nicht konsumierbaren In-App-Kauf seit Oktober im App Store zu veröffentlichen ...

Ich habe alle meine Tests auf einem realen Gerät mit einem Sandbox-Benutzer durchgeführt. Alles funktioniert, um das Produkt zu kaufen, aber Apple lehnt meinen Build wegen des Fehlers "UNKNOW PRODUCT" auf dem Simulator (iOS 14) ab.

Ich versuche, diese App-Version mit einem nicht konsumierbaren In-App-Kauf seit Oktober im App Store zu veröffentlichen ...

Schauen Sie sich unser Problem an.

https://github.com/dooboolab/react-native-iap/issues/1200

Ich hatte auch das gleiche Problem und hatte meine Bewerbung nach drei Wochen veröffentlicht.

Ich habe alle meine Tests auf einem realen Gerät mit einem Sandbox-Benutzer durchgeführt. Alles funktioniert, um das Produkt zu kaufen, aber Apple lehnt meinen Build wegen des Fehlers "UNKNOW PRODUCT" auf dem Simulator (iOS 14) ab.
Ich versuche, diese App-Version mit einem nicht konsumierbaren In-App-Kauf seit Oktober im App Store zu veröffentlichen ...

Schauen Sie sich unser Problem an.

1200

Ich hatte auch das gleiche Problem und hatte meine Bewerbung nach drei Wochen veröffentlicht.

Mein Build wurde von Apple angenommen, vielen Dank für Ihre Hilfe !!!

Ich habe es hier beantwortet

Probieren Sie ein echtes Gerät aus

Antworten

Dieses Problem tritt auch bei IOS 14-Simulatoren auf. Wäre schön, Zahlungen zu testen, ohne ein echtes Gerät verwenden zu müssen.

Funktioniert nicht mit dieser Umgebung

  • Mac 11.2
  • Xcode 12.4
  • Simulator mit iOS 14 und höher

Arbeiten mit dieser Umgebung

  • Mac 11.2
  • Xcode 12.4
  • Simulator mit iOS 13.7 und niedriger

Unter Simulator iOS 14 funktioniert dies
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen