React-native-iap: Kann nicht unter iOS ausgeführt werden, da der Typname „SKPaymentDiscount“ unbekannt ist.

Erstellt am 25. Apr. 2019  ·  38Kommentare  ·  Quelle: dooboolab/react-native-iap

Version von React-native-iap

2.4.9

Version von React-Native

0.59.5

Plattformen, auf denen der Fehler aufgetreten ist (IOS oder Android oder beides?)

iOS

Erwartetes Verhalten

App-Builds

Tatsächliches Verhalten

App wird nicht erstellt

Getestete Umgebung (Emulator? Echtes Gerät?)

Emulator

Schritte zum Reproduzieren des Verhaltens

Reagieren Sie einfach mit den oben genannten Versionen von „React-native-iap“ und „React native“ auf run-ios

Dies ist der genaue Fehler, den ich bekomme:

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

Ich habe versucht, SKPaymentDiscount in SKProductDiscount umzubenennen, nur um zu sehen, und ich habe verschiedene Fehler erhalten.

Lassen Sie mich wissen, wenn Sie Fragen haben.

⌛️ legacy 📱 iOS

Hilfreichster Kommentar

Ich habe dieses Problem auch in Version 2.4.11 . Die einzige Version, die funktioniert hat, bevor @hyochan Änderungen vorgenommen hat, ist 2.4.8

Alle 38 Kommentare

Ich habe dies in der aktuellen ios -Version noch nicht getestet. Ich habe das Gefühl, dass es in der neueren Version Änderungen gegeben hat. Könnten Sie uns, wenn möglich, PR geben?

@hyochan würde ich gerne tun, aber ich bin mir nicht 100% sicher, wie ich es machen würde. Können Sie mich durch die Einrichtung einer PR für Sie führen? Ich weiß nicht, was die Lösung wäre

@ndejesus1227 Glaubst du, du hast die Lösung für dieses Problem gefunden?

@hyochan nein, habe ich nicht. Ich habe versucht, es zu beheben, aber ich kenne nur JavaScript. Ich müsste jemanden finden, der mir hilft, der Native iOS viel besser kennt als ich

@ndejesus1227 Tatsächlich wurde diese Funktion von @renatoalencar in #455 implementiert. Ich kann dem momentan nicht weiter helfen.

Danke, @hyochan.

@renatoalencar , welche Version von React Native verwendest du? Ich bin mir nicht sicher, ob ich vorerst React-native-iap oder RN herabstufen sollte

Hallo @ndejesus1227 , das geht auf meine Rechnung, tut mir leid. Was tatsächlich passiert, ist, dass Ihre iOS-Version unter 12.2 liegt. Wie in der Apple-Dokumentation beschrieben, ist SKPaymentDiscount nur für iOS 12.2+ verfügbar.

Ich sollte die tatsächliche iOS-Version überprüfen, habe es aber vergessen.

@renatoalencar ah, okay. Das macht Sinn. Hast du eine Idee, wann du das beheben kannst? Sie können sich Zeit nehmen, nur neugierig

Ich werde vor diesem Update auf eine Version herunterstufen, bis dies an @hyochan @renatoalencar gerichtet ist

Ich habe dieses Problem auch in Version 2.4.11 . Die einzige Version, die funktioniert hat, bevor @hyochan Änderungen vorgenommen hat, ist 2.4.8

Danke für die Erklärung @ggdegreat , also gehe ich zu 2.4.8 !

Ich hatte das gleiche Problem und kann bestätigen, dass 2.4.8 das Problem behebt. Danke für die Hilfe!

Daher ist das Paket nicht kompatibel mit ios unter 12 von 2.4.9 . Ich habe die Readme-Datei für die Migration aktualisiert.

Funktioniert die Zahlung mit Apple Pay (und ohne Popup)?

Wir müssen beide Versionen synchron halten, wenn wir sie in der Produktionsbibliothek verwenden möchten.

Wir können nicht zwischen Version > 12 oder Version < 12 für Unternehmen wählen!

Es gibt wahrscheinlich etwas, das ich nicht verstehe! Danke für deine Arbeit @hyochan !

Ich hatte das gleiche Problem - jetzt gelöst. Über ein Jahr lang habe ich Xcode nicht geöffnet. Jetzt habe ich mein iPhone 6s genommen und auf Firmware 12.3.1 aktualisiert; Mein Mac war immer noch auf „Sierra“, also war meine Xcode-Installation nicht mit dem neuesten iOS kompatibel. Beim Versuch, Code auf einem mit einem MacBook verbundenen iPhone auszuführen, habe ich diese Meldungen erhalten. Dann die Lösung:

  • Ich habe mein Mac-OS auf 10.14.5 aktualisiert
  • Ich aktualisiere Xcode auf 10.2.1
  • Ich verwende React-native-iap 2.5.5
  • iPhone 6S mit iOS 12.3.1
  • Ausgeworfenes Expo-Projekt mit SDK 32.0.0, das heißt Expo-modifiziert-reagieren-nativ basierend auf 0.57

---> jetzt funktioniert alles

Die App, die diese Bibliothek verwendet, funktioniert also nicht, wenn sie unter iOS <12.2 ausgeführt wird?

Es wird ab 3.0.0

Danke, bleibt bei 2.4.8 bis 3.0.0 veröffentlicht wird

@DataGreed Gerade veröffentlicht 3.0.0 jetzt.

@hyochan wir können immer noch das Problem mit SKPaymentDiscount auf v3.0.0 sehen.

Gibt es etwas, das wir vermissen? Wir haben gerade die Version auf package.json aktualisiert, die App in xcode installiert und bereinigt/erstellt. Der Fehler taucht immer noch auf.

@danidfm Was ist dein Build-Ziel in ios ? Versuchen Sie außerdem, node_modules vor npm install vollständig zu entfernen

Das Build-Ziel ist 11.0 und wir haben den Ordner node_modules vollständig entfernt.

gleiches Problem bei mir - 3.0.0 versucht, aber auf 2.4.8 zurückgesetzt

(Übrigens, davor habe ich 3.0.0 RC-Versionen ausprobiert und immer noch den gleichen Fehler bekommen)

Könnten Sie bitte alle das Projekt IamExample testen und den Unterschied zu Ihrem Projekt feststellen? Ich möchte klarstellen, dass ich dieselben Codes betrachte.

Hallo @ndejesus1227 , das geht auf meine Rechnung, tut mir leid. Was tatsächlich passiert, ist, dass Ihre iOS-Version unter 12.2 liegt. Wie in der Apple-Dokumentation beschrieben, ist SKPaymentDiscount nur für iOS 12.2+ verfügbar.

Ich sollte die tatsächliche iOS-Version überprüfen, habe es aber vergessen.

Ich möchte nur sagen, dass er buchstäblich senden sollte, dass er die Version überprüfen und dieses Problem vermeiden sollte, aber er hat es vergessen. Seine Pull-Anforderung hätte niemals mit dem Master zusammengeführt werden dürfen

Versuch, ein Projekt in Xcode für mein iPhone mit iOS v12.3.1 auszuführen
Gleicher Fehler bei Verwendung von „react-native-iap v3.2.2“.
Wechseln zu 2.4.8 (Build erfolgreich)

Ich denke, der Grund ist die auf dem Gerät installierte iOS-Version

Das ist sehr seltsam, weil einige von ihnen bereits bestätigt haben, dass der Build in Ordnung ist (ich auch). Wenn Sie Probleme beim Aktualisieren haben, versuchen Sie bitte, ios/build zu entfernen, und versuchen Sie es dann erneut.

Ich habe jetzt mal versucht zu bauen. Prüfen Sie IapExample .
image

@hyochan danke für deine tolle Unterstützung!

Ich habe gerade alle in diesem Problem erwähnten Hinweise ausprobiert (node_modules vor der npm-Installation vollständig entfernt, App bereinigen, ios/build entfernt). Leider bekomme ich dieses Problem immer noch in Kombination mit Build Target 11.2 und React-native-iap v3.2.2. Ich habe auch versucht, auf v2.4.8 herunterzustufen, was zu einem erfolgreichen Build führt. Außerdem habe ich versucht, IapExample einzurichten, bin aber in diesem React-Native-Problem gelandet (https://github.com/facebook/react-native/issues/25252)

Ich habe das gleiche Problem auf einem iMac mit macOS 10.13. Mein Macbook mit 10.15 funktioniert einwandfrei,

Vielleicht funktioniert die ältere Mac-Version nicht? 🤔

@murilobast verschiedene xCode-Versionen?

Überprüfen Sie den Fehlercodeblock der Betriebssystemversion #if __IPHONE_12_2 und erstellen Sie ihn neu

`#if __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 `

so was

Ich war auf dieses Problem gestoßen. Das Aktualisieren meines xcode von 10.1 auf 10.2.1 hat mein Problem behoben. Ich kann mein Projekt jetzt bauen.

Dasselbe Problem mit Xcode 10.1, ich kann XCode nicht auf 10.2 aktualisieren, da es OSX 10.14.3 benötigt, das von meinem alten iMac, der bei 10.13.6 hängen bleibt, nicht unterstützt wird.

@lc3t35 , wie haben Sie ein iOS-Projekt mit Xcode 10.1 erstellt?

@liudmyla-schastlyvets Ich kann nicht mit 10.1 bauen, ich musste einen anderen Computer mit der neuesten Version von Xcode verwenden :(

reaktiv-nativ: 0,59,0
reagieren-nativ- iap:2.4.8
Xcode: 10.1
Erfolgreich gebautes Projekt. Danke

Ja, ich auch ! ausgezeichnete Arbeit von den Betreuern!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen