React-native-iap: Ne peut pas fonctionner sur iOS en raison d'un "nom de type inconnu" SKPaymentDiscount "

Créé le 25 avr. 2019  ·  38Commentaires  ·  Source: dooboolab/react-native-iap

Version de react-native-iap

2.4.9

Version de réagir-native

0.59.5

Les plates-formes sur lesquelles vous avez rencontré l'erreur (IOS ou Android ou les deux ?)

iOS

Comportement prévisible

Versions d'applications

Comportement réel

L'application ne se construit pas

Environnement testé (émulateur ? Périphérique réel ?)

Émulateur

Étapes pour reproduire le comportement

Réagissez simplement aux run-ios natifs avec les versions ci-dessus de react-native-iap et React native

C'est l'erreur exacte que j'obtiens:

/node_modules/react-native-iap/ios/RNIapIos.m:167:5: unknown type name 'SKPaymentDiscount'; did you mean 'SKProductDiscount'?

J'ai essayé de renommer SKPaymentDiscount en SKProductDiscount juste pour voir et j'obtenais différentes erreurs.

Faites moi savoir si vous avez des questions.

⌛️ legacy 📱 iOS

Commentaire le plus utile

J'ai aussi ce problème sur la version 2.4.11 . La seule version qui fonctionnait avant que @hyochan n'apporte des modifications est 2.4.8

Tous les 38 commentaires

Je n'ai pas encore testé cela dans la version récente ios . J'ai l'impression qu'il y a eu des changements dans la nouvelle version. Pourriez-vous nous donner un PR si possible ?

@hyochan Je serais heureux de le faire, mais je ne suis pas sûr à 100% de la façon dont je le ferais. Pouvez-vous me guider dans la mise en place d'un PR pour vous tous ? Je ne sais pas quelle serait la solution

@ndejesus1227 Pensez-vous avoir trouvé la solution à ce problème ?

@hyochan non, je ne l'ai pas fait. J'ai essayé de le réparer mais je ne connais que JavaScript. Il faudrait que je trouve quelqu'un pour m'aider qui connaisse iOS natif bien mieux que moi

@ndejesus1227 En fait, cette fonctionnalité a été implémentée par @renatoalencar dans #455. Je ne peux pas vous aider davantage pour le moment.

Merci, @hyochan.

@renatoalencar sur quelle version de react native utilisez-vous ? Je ne sais pas si je devrais rétrograder react-native-iap ou RN pour le moment

Bonjour @ndejesus1227 , c'est pour moi, désolé. Ce qui se passe réellement, c'est que votre version iOS est inférieure à 12.2. Comme le décrit la documentation Apple , le SKPaymentDiscount est disponible uniquement pour iOS 12.2+.

J'étais censé vérifier la version réelle d'iOS, mais j'ai fini par oublier.

@renatoalencar ah, d'accord. Ça a du sens. Avez-vous une idée du moment où vous pouvez résoudre ce problème ? Tu peux prendre ton temps, juste curieux

Je rétrograderai vers une version antérieure à cette mise à jour jusqu'à ce que cela soit résolu @hyochan @renatoalencar

J'ai aussi ce problème sur la version 2.4.11 . La seule version qui fonctionnait avant que @hyochan n'apporte des modifications est 2.4.8

Merci pour l'explication @ggdegreat , donc je vais au 2.4.8 !

J'avais le même problème et je peux confirmer que la version 2.4.8 résout le problème. Merci pour l'aide!

Ainsi, le package ne sera pas compatible avec ios en dessous de 12 à partir de 2.4.9 . J'ai mis à jour le fichier readme pour la migration .

Le paiement avec Apple Pay (et pas de popup) va-t-il fonctionner ?

Nous devons conserver la synchronisation des deux versions si nous voulons utiliser dans la bibliothèque de production.

Nous ne pouvons pas choisir entre la version > 12 ou la version < 12 pour les entreprises !

Il y a probablement quelque chose que je ne comprends pas ! Merci pour votre travail @hyochan !

J'ai eu le même problème - maintenant résolu. Pendant plus d'un an, je n'ai pas ouvert Xcode. Maintenant, j'ai pris mon iphone 6s et mis à niveau vers le firmware 12.3.1; mon mac était toujours sur 'Sierra', donc mon installation Xcode n'était pas compatible avec le dernier ios. Lorsque j'essayais d'exécuter du code sur un iphone connecté à un macbook, j'ai reçu ces messages. Alors la soluce :

  • J'ai mis à jour mon Mac-OS vers 10.14.5
  • Je mets à jour Xcode vers 10.2.1
  • J'utilise react-native-iap 2.5.5
  • iPhone 6S avec iOS 12.3.1
  • expo-project éjecté avec sdk 32.0.0, cela signifie expo-modified-react-native basé sur 0.57

---> maintenant tout fonctionne

Ainsi, l'application utilisant cette bibliothèque ne fonctionnera pas sur iOS <12.2 ?

Il sera à partir de 3.0.0

Merci, restera sur 2.4.8 jusqu'à ce que 3.0.0 soit publié

@DataGreed vient de sortir 3.0.0 maintenant.

@hyochan nous pouvons toujours voir le problème avec SKPaymentDiscount sur v3.0.0.

Y a-t-il quelque chose qui nous manque? nous venons de mettre à jour la version sur package.json, avons installé et nettoyé/construit l'application dans xcode. L'erreur apparaît toujours.

@danidfm Quelle est votre cible de construction dans ios ? Essayez également de supprimer complètement node_modules avant npm install

la cible de construction est 11.0 et nous avons entièrement supprimé le dossier node_modules.

même problème avec moi - j'ai essayé 3.0.0, mais je suis revenu à 2.4.8

(au fait, avant cela, j'ai essayé les versions 3.0.0 RC et j'ai toujours la même erreur)

Pourriez-vous tous tester IamExample et voir la différence avec votre projet ? Je veux être clair sur la recherche des mêmes codes.

Bonjour @ndejesus1227 , c'est pour moi, désolé. Ce qui se passe réellement, c'est que votre version iOS est inférieure à 12.2. Comme le décrit la documentation Apple , le SKPaymentDiscount est disponible uniquement pour iOS 12.2+.

J'étais censé vérifier la version réelle d'iOS, mais j'ai fini par oublier.

Je veux juste dire qu'il a littéralement envoyé qu'il était censé vérifier la version et éviter ce problème, mais il a oublié. Sa pull request n'aurait jamais dû être fusionnée avec master

Essayer d'exécuter le projet dans Xcode pour mon iPhone avec iOS v12.3.1
Même erreur, en utilisant react-native-iap v3.2.2.
Passage à 2.4.8 (construction réussie)

Je pense que la raison est la version iOS installée sur l'appareil

C'est très étrange, car certains d'entre eux ont déjà confirmé que la construction était correcte (moi aussi). Si vous rencontrez des problèmes lors de la mise à jour, essayez de supprimer ios/build , puis réessayez.

Je viens d'essayer de construire maintenant. Vérifiez IapExample .
image

@hyochan merci pour votre grand soutien!

Je viens d'essayer toutes les astuces mentionnées dans ce problème (node_modules complètement supprimé avant l'installation de npm, application propre, ios/build supprimé). Malheureusement, je reçois toujours ce problème en combinaison avec la cible de construction 11.2 et react-native-iap v3.2.2. J'ai également essayé de rétrograder vers v2.4.8, ce qui conduit à une construction réussie. De plus, j'ai essayé de configurer IapExample mais je me suis retrouvé dans ce problème de réaction native (https://github.com/facebook/react-native/issues/25252)

J'ai le même problème sur un iMac avec macOS 10.13. Mon macbook sous 10.15 fonctionne bien,

Peut-être que l'ancienne version mac ne fonctionne pas? 🤔

@murilobast différentes versions de xCode ?

Vérifier la version du système d'exploitation #if __IPHONE_12_2 bloc de code d'erreur et reconstruire

`#si __IPHONE_12_2

    SKPaymentDiscount *discount = [[SKPaymentDiscount alloc]
                                   initWithIdentifier:discountOffer[@"identifier"]
                                   keyIdentifier:discountOffer[@"keyIdentifier"]
                                   nonce:[[NSUUID alloc] initWithUUIDString:discountOffer[@"nonce"]]
                                   signature:discountOffer[@"signature"]
                                   timestamp:discountOffer[@"timestamp"]
                                   ];

    SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
    payment.applicationUsername = usernameHash;
    payment.paymentDiscount = discount;

    [[SKPaymentQueue defaultQueue] addPayment:payment];
    [self addPromiseForKey:RCTKeyForInstance(payment.productIdentifier) resolve:resolve reject:reject];
    #endif `

comme ça

J'étais confronté à ce problème. La mise à jour de mon xcode de 10.1 à 10.2.1 a résolu mon problème. Je suis maintenant en mesure de construire mon projet.

Même problème avec Xcode 10.1, je ne peux pas mettre à jour XCode vers 10.2 car il a besoin d'OSX 10.14.3, non pris en charge par mon ancien iMac bloqué à 10.13.6.

@lc3t35 , comment avez-vous construit le projet iOS avec Xcode 10.1 ?

@liudmyla-schastlyvets Je ne peux pas construire avec 10.1, j'ai dû utiliser un autre ordinateur avec la dernière version de Xcode :(

natif de réaction : 0.59.0
react-native- iap:2.4.8
Code X : 10.1
Projet construit avec succès. Merci

Oui moi aussi ! excellent travail des mainteneurs !

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