React-native-iap: iOS 14: erreur inconnue getProducts () (RN 0.62.2 - 0.63)

Créé le 18 sept. 2020  ·  50Commentaires  ·  Source: dooboolab/react-native-iap

RNIap.getProducts () semble être cassé dans la dernière version de React Native, ne renvoyant qu'une erreur inconnue.

Version de react-native-iap

4.6.1

Version de react-native

0,63,0

Plateformes sur lesquelles vous avez rencontré l'erreur (IOS ou Android ou les deux?)

iOS

Comportement attendu

produits à récupérer.

Comportement réel

erreur inconnue renvoyée

Environnement testé (émulateur? Real Device?)

Simulateur iOS

Étapes pour reproduire le comportement

Appelez simplement RNIap.getProducts () ou RNIap.getSubscriptions ().

📱 iOS 🙏 help wanted

Commentaire le plus utile

Tous les 50 commentaires

J'éprouve cela également avec les simulateurs iOS exécutant iOS 14.0 mais n'ayant pas de problèmes avec d'autres versions de simulateur (en particulier, iOS 13.5).

Cela semble être un problème du côté d'Apple avec le simulateur iOS 14.0: https://developer.apple.com/forums/thread/125164

J'ai trouvé ce lien via: https://github.com/dooboolab/react-native-iap/issues/1091

Merci @joeyscarim. J'ai maintenant contacté Apple et j'attends leurs commentaires.

@rossbulat même problème sur 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)

Salut à tous,

Nous vivons également cela. Après la mise à niveau vers la v4.6.1 presque à chaque fois, nous rencontrons également une "erreur inconnue".

Screenshot 2020-09-23 at 09 53 25

Salut les gars,
Je pense avoir trouvé la solution à notre problème. Vous devez être sûr que le initConnection est en cours d'exécution.
Dans mon exemple, je viens de mettre requestPurchase/requestSubscription à l'intérieur du initConnection . Avant, cela fonctionnait sans, maintenant c'est un must have.

@Hellhiem J'ai initConnection et je reçois toujours l'erreur.

L'exécution de la fonction suivante vérifie que l'erreur est toujours là avec initConnection ()

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

@rossbulat que se passe-t-il lorsque vous essayez ceci:

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

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

J'ai fait la même chose mais à l'intérieur de then j'ai mis requestPurchase/requestSubscription

@Hellhiem reçoit toujours une erreur inconnue! (c'est le même que mon code mais en utilisant then au lieu de la syntaxe async / await).

J'ai jeté un coup d'œil aux API du module natif, la fonction getItems() semble être le point d'échec. Est-il possible pour l'un des principaux développeurs de vérifier que cet appel d'API natif fonctionne comme prévu sur iOS 14?

@Hellhiem J'ai essayé votre code, toujours avec la même erreur inconnue.

L'ingénierie Apple examine le cas via l'Assistant de rétroaction. Je mettrai à jour ce fil au fur et à mesure que nous déterminerons quel est le problème.

Je rencontre ce problème sur le simulateur iOS exécutant iOS 14.0

Même problème. Le simulateur IOS 14 avec xcode 12 ne peut pas récupérer les produits et générer une erreur inconnue

Même problème.

Même problème pour un appareil réel lors de l'examen Apple

J'ai le même problème mais avec la fonction getSubscriptions

J'ai fait quelques tests et, pour moi, [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers] renvoie juste vide ...

même problème

J'ai le même problème avec getSubscriptions du côté IOS, UNKNOWN_ERROR a été lancé, Xcode 12.0, react-native 0.62.2

@rossbulat une chance? Je rencontre également le même problème

@rossbulat une chance? Je rencontre également le même problème

Utilisez-vous un appareil ou un simulateur?

Bonjour les développeurs, je l'ai résolu. J'ai fait ce qui suit

  1. Je me suis assuré d'accepter tous les termes et conditions des accords d'utilisation en m'assurant que le statut est actif
  2. Je me suis assuré que l'identifiant du produit / abonnement dans la section des achats via l'application de votre application est marqué comme prêt à être envoyé

PS: mon test était sur un appareil local

Le problème concerne uniquement le simulateur iOS 14. Les vrais appareils fonctionnent.

Apple est devenu silencieux au cours de la semaine dernière, aucune mise à jour n'a été partagée avec moi.

Pour le simulateur, vous devez ajouter le fichier de configuration StoreKit au projet et le sélectionner dans votre schéma d'exécution. Mais j'ai eu cette erreur sur l'appareil

Le problème concerne uniquement le simulateur iOS 14. Les vrais appareils fonctionnent.

Apple est devenu silencieux au cours de la semaine dernière, aucune mise à jour n'a été partagée avec moi.

Les tests dans les achats d'applications sont désormais limités aux appareils réels, car je ne trouve pas l'option d'ajouter un testeur de bac à sable sur le simulateur iOS

Le problème concerne uniquement le simulateur iOS 14. Les vrais appareils fonctionnent.

Apple est devenu silencieux au cours de la semaine dernière, aucune mise à jour n'a été partagée avec moi.

Les tests dans les achats d'applications sont désormais limités aux appareils réels, car je ne trouve pas l'option d'ajouter un testeur de bac à sable sur le simulateur iOS

Il est géré par le fichier de configuration storekit

@ilyasbat J'ai suivi ces instructions, nettoyer le dossier de construction et reconstruire, mais malheureusement toujours l'erreur.

J'ai résolu par la configuration de strorekit.
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Ajout du fichier de configuration de storekit, reconstruction et exécution maintenant sur le simulateur IOS 14 avec xcode 12. Cela fonctionne parfaitement et je peux réellement acheter des articles sur le simulateur pour la première fois.

@ilyasbat est-ce que ce correctif est sûr? Que se passera-t-il si je modifie mes offres de produits dans l'Appstore par la suite, par exemple, changez les prix - seront-ils également mis à jour dans l'application ou l'application sera-t-elle bloquée avec la configuration storeConfiguration.storekit ?

@ilyasbat est-ce que ce correctif est sûr? Que se passera-t-il si je modifie mes offres de produits dans l'Appstore par la suite, par exemple, changez les prix - seront-ils également mis à jour dans l'application ou l'application sera-t-elle bloquée avec la configuration storeConfiguration.storekit ?

J'ai trouvé ce très bon article:
https://www.appcoda.com/storekit-testing/

D'après ce que je lis, il semble que le fichier de configuration de StoreKit soit uniquement destiné au débogage / test:

Le champ suivant est le prix de l'achat intégré. Même s'il existe des niveaux de prix dans App Store Connect, nous pouvons fournir ici toute valeur que nous voulons sous forme de texte gratuit. Le prix est juste pour des raisons de test, il ne s'appliquera pas aux achats réels dans l'application et bien sûr, il n'y aura pas de frais. Alors n'hésitez pas à fixer le prix que vous souhaitez. Pour cet achat in-app spécifique que nous configurons ici, une valeur de 0,99 est très bien. La devise du prix sera la devise correspondant aux paramètres régionaux du simulateur ou à tout paramètre régional sélectionné manuellement (nous en reparlerons plus tard). Ainsi, 0,99 peut être en dollars, en euros, en yens, etc.

Je ne sais pas encore si cela est connu (je ne l'ai pas vu mentionné ci-dessus): j'ai constaté que je continue à recevoir Error: UNKNOWN_ERROR quand j'exécute npx react-native run-ios depuis le terminal, mais quand J'exécute l'application à partir de xcode, l'achat intégré (avec storekit) fonctionne bien.

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

xcode v12
macos 10.15.7

À l'heure actuelle, il n'est donc pas possible d'utiliser react-native-iap en production sur un appareil avec iOS 14? Puisque la seule façon de corriger le [Error: UNKNOWN_ERROR] est d'ajouter un fichier Configuration.StoreKit , mais uniquement à des fins de test, pas pour une version de production?

Quelqu'un at-il une autre solution?

J'utilise actuellement cette bibliothèque pour les achats in-app en production, Android et iOS (donc oui iOS 14). Je suis en mesure d'avoir des utilisateurs de test avec succès dans TestFlight (note: ils ne peuvent pas utiliser signin d'empreintes digitales, ils doivent id pomme Ender et mot de passe toujours - ce qui est une politique d' Apple, pas un défaut de cette bibliothèque) et les choses se passent dans la production .

Avez-vous essayé de tester votre application dans TestFlight @RobinChailley ?

J'ai obtenu 2 de mes vrais appareils sur IOS 14.1 fonctionnant à nouveau avec des comptes sandbox en faisant ce qui suit.

Suivez les étapes pour créer la configuration StoreKit, sélectionnez-la dans votre schéma d'exécution, puis créez-la sur votre appareil. Je ne sais pas si cette étape est nécessaire, mais récupérez certains produits. Vous pouvez effectuer un achat à ce stade, mais l'auditeur des achats affichera une erreur puisque l'identifiant de transaction des achats est "0".

Désélectionnez ensuite la configuration StoreKit du schéma Exécuter et créez à nouveau sur votre appareil. Cette fois, lorsque vous récupérez des produits, vous serez invité à vous connecter. Pour une raison quelconque, je peux maintenant me connecter avec mes comptes sandbox. Je ne sais pas pourquoi mais peut-être que cela efface ou réinitialise quelque chose.

@karltaylor Oui, mes achats

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...
        })
}

Remarque: mon PRODUCT_ID correspondait au texte de la colonne "Product ID" dans _appstoreconnect -> App Store -> Manage_

Quel est le "statut" de vos achats intégrés dans _appstoreconnect_?

@karltaylor Oui, mes achats

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...
        })
}

Remarque: mon PRODUCT_ID correspondait au texte de la colonne "Product ID" dans _appstoreconnect -> App Store -> Manage_

Quel est le "statut" de vos achats intégrés dans _appstoreconnect_?

Désolé @Beamanator, j'ai supprimé mes commentaires pour éviter de causer plus de confusion car c'était un problème avec une autre zone.

Après avoir ajouté le fichier Configuration.storekit , je les ai fait travailler dans mon simulateur et dans Testflight! 👍

@rossbulat Avez-vous pu trouver une solution à ce problème? Je reçois des problèmes sur Android et iOS.

Je ne sais pas encore si cela est connu (je ne l'ai pas vu mentionné ci-dessus): j'ai constaté que je continue à recevoir Error: UNKNOWN_ERROR quand j'exécute npx react-native run-ios depuis le terminal, mais quand J'exécute l'application à partir de xcode, l'achat intégré (avec storekit) fonctionne bien.

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

xcode v12
macos 10.15.7

C'est bon pour moi
"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12
macos 11.0.1

cela fonctionnait comme ça en mode débogage, mais pas en vol de test. Aurait-il une configuration différente?

J'obtiens toujours la même "Erreur inconnue" sur iOS.

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

Xcode 12.2

Une idée pour résoudre ce problème sans utiliser la configuration de StoreKit?

J'obtiens toujours la même "Erreur inconnue" sur iOS.

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

Xcode 12.2

Une idée pour résoudre ce problème sans utiliser la configuration de StoreKit?

Quelle version du simulateur avez-vous utilisée?
Même problème avec iOS 14.2 et fonctionne bien avec iOS 13.5

Même chose pour moi lors de l'exécution sur le simulateur iOS 14.2 et fonctionne bien avec le simulateur iOS 13.x.

Et j'ai le même problème avec l'équipe de validation Apple, je pense qu'ils exécutent mon application sur un simulateur ...

Nous avons constaté que vos produits achetés via l'application présentaient un ou plusieurs bogues lors de leur examen sur un iPad exécutant iOS 14.0.1 sur Wi-Fi.

  • Lancement de l'application
  • Appuyez sur les paramètres, en haut à gauche
  • Appuyez sur Supprimer les publicités
  • L'application a commencé à se charger indéfiniment

Quelqu'un ici a déjà essayé de publier des achats in-app non consommables en production?

Même chose pour moi lors de l'exécution sur le simulateur iOS 14.2 et fonctionne bien avec le simulateur iOS 13.x.

Et j'ai le même problème avec l'équipe de validation Apple, je pense qu'ils exécutent mon application sur un simulateur ...

Nous avons constaté que vos produits achetés via l'application présentaient un ou plusieurs bogues lors de leur examen sur un iPad exécutant iOS 14.0.1 sur Wi-Fi.

  • Lancement de l'application
  • Appuyez sur les paramètres, en haut à gauche
  • Appuyez sur Supprimer les publicités
  • L'application a commencé à se charger indéfiniment

Quelqu'un ici a déjà essayé de publier des achats in-app non consommables en production?

vous avez également des retards dans l'approbation des prix et Apple n'approuve pas votre demande parce que vous ne pouvez pas acheter?

J'ai fait tous mes tests sur un appareil réel avec un utilisateur de sandbox. Tout fonctionne pour acheter le produit mais Apple refuse ma version en raison de l'erreur "UNKNOW PRODUCT" sur le simulateur (iOS 14).

J'essaie de publier cette version de l'application avec un achat in-app non consommable sur l'App Store depuis octobre ...

J'ai fait tous mes tests sur un appareil réel avec un utilisateur de sandbox. Tout fonctionne pour acheter le produit mais Apple refuse ma version en raison de l'erreur "UNKNOW PRODUCT" sur le simulateur (iOS 14).

J'essaie de publier cette version de l'application avec un achat in-app non consommable sur l'App Store depuis octobre ...

Jetez un œil à notre problème.

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

J'ai également traversé le même problème et ma candidature a été publiée au bout de trois semaines.

J'ai fait tous mes tests sur un appareil réel avec un utilisateur de sandbox. Tout fonctionne pour acheter le produit mais Apple refuse ma version en raison de l'erreur "UNKNOW PRODUCT" sur le simulateur (iOS 14).
J'essaie de publier cette version de l'application avec un achat in-app non consommable sur l'App Store depuis octobre ...

Jetez un œil à notre problème.

1200

J'ai également traversé le même problème et ma candidature a été publiée au bout de trois semaines.

Ma version a été acceptée par Apple, merci beaucoup pour votre aide !!!

j'ai répondu ici

essayer sur un vrai appareil

Répondre

Avoir ce problème aussi sur les simulateurs IOS 14. Ce serait bien de tester les paiements sans avoir à utiliser un vrai appareil.

Ne fonctionne

  • Mac 11.2
  • Xcode 12.4
  • Simulateur exécutant iOS 14 et supérieur

Travailler avec cet environnement

  • Mac 11.2
  • Xcode 12.4
  • Simulateur exécutant iOS 13.7 et inférieur

Sur le simulateur iOS 14, cela fonctionne
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Cette page vous a été utile?
0 / 5 - 0 notes