React-native-iap: No se puede ejecutar en iOS debido al 'nombre de tipo desconocido 'SKPaymentDiscount'

Creado en 25 abr. 2019  ·  38Comentarios  ·  Fuente: dooboolab/react-native-iap

Versión de react-native-iap

2.4.9

Versión de react-native

0.59.5

Plataformas en las que enfrentó el error (¿IOS o Android o ambos?)

iOS

Comportamiento esperado

Compilaciones de aplicaciones

Comportamiento real

La aplicación no se construye

Entorno probado (¿Emulador? ¿Dispositivo real?)

emulador

Pasos para reproducir el comportamiento

Solo react-native run-ios con las versiones anteriores de react-native-iap y React native

Este es el error exacto que obtengo:

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

Intenté cambiar el nombre de SKPaymentDiscount a SKProductDiscount solo para ver y recibí diferentes errores.

Hazme saber si tienes alguna pregunta.

⌛️ legacy 📱 iOS

Comentario más útil

También tengo este problema en la versión 2.4.11 . La única versión que funcionó antes de que @hyochan hiciera cambios es 2.4.8

Todos 38 comentarios

Todavía no he probado esto en la versión reciente ios . Siento que ha habido cambios en la versión más nueva. ¿Podría darnos un PR si es posible?

@hyochan Me encantaría, pero no estoy 100 % seguro de cómo lo haría. ¿Me puede guiar a través de la creación de un PR para todos ustedes? no se cual seria la solucion

@ndejesus1227 ¿Crees que has encontrado la solución a este problema?

@hyochan no, no lo he hecho. He intentado solucionarlo, pero solo conozco JavaScript. Tendría que encontrar a alguien que me ayude y que conozca iOS nativo mucho mejor que yo.

@ndejesus1227 De hecho, esta característica ha sido implementada por @renatoalencar en el #455. No puedo ayudar más en esto actualmente.

Gracias, @hyochan.

@renatoalencar , ¿en qué versión de reaccionar nativo estás usando? No estoy seguro de si debería degradar react-native-iap o RN por ahora

Hola @ndejesus1227 , eso depende de mí, lo siento. Lo que realmente sucede es que su versión de iOS es inferior a 12.2. Como describe la documentación de Apple , el SKPaymentDiscount está disponible solo para iOS 12.2+.

Se suponía que debía verificar la versión real de iOS, pero terminé olvidándome.

@renatoalencar ah, está bien. Eso tiene sentido. ¿Tienes alguna idea de cuándo puedes hacer una solución para esto? Puedes tomarte tu tiempo, solo curiosidad.

Bajaré a una versión anterior a esta actualización hasta que se solucione @hyochan @renatoalencar

También tengo este problema en la versión 2.4.11 . La única versión que funcionó antes de que @hyochan hiciera cambios es 2.4.8

Gracias por la explicación @ggdegreat , ¡así que voy a 2.4.8!

Estaba teniendo el mismo problema y puedo confirmar que 2.4.8 soluciona el problema. ¡Gracias por la ayuda!

Por lo tanto, el paquete no será compatible con ios por debajo de 12 desde 2.4.9 . He actualizado el archivo Léame para la migración .

¿Funcionará el pago con Apple Pay (y sin ventana emergente)?

Necesitamos mantener ambas versiones sincronizadas si queremos usarlas en la biblioteca de producción.

¡No podemos elegir entre la versión > 12 o la versión < 12 para empresas!

¡Probablemente hay algo que no entiendo! ¡Gracias por tu trabajo @hyochan !

Tuve el mismo problema, ahora resuelto. Durante más de un año no abrí Xcode. Ahora tomé mi iPhone 6s y lo actualicé al firmware 12.3.1; mi mac todavía estaba en 'Sierra', por lo que mi instalación de Xcode no era compatible con la última versión de ios. Al intentar ejecutar el código en un iPhone conectado a una macbook, recibí estos mensajes. Entonces la solución:

  • Actualicé mi Mac-OS a 10.14.5
  • Actualicé Xcode a 10.2.1
  • yo uso react-native-iap 2.5.5
  • iPhone 6S con iOS 12.3.1
  • expulsado expo-project con sdk 32.0.0, eso significa expo-modified-react-native basado en 0.57

---> ahora todo funciona

Entonces, ¿la aplicación que usa esta biblioteca no funcionará cuando se ejecute en iOS <12.2?

Será a partir de 3.0.0

Gracias, permaneceré en 2.4.8 hasta que se publique 3.0.0

@DataGreed acaba de lanzar 3.0.0 ahora.

@hyochan aún podemos ver el problema con SKPaymentDiscount en v3.0.0.

¿Hay algo que nos estamos perdiendo? acabamos de actualizar la versión en package.json, instalamos y limpiamos/compilamos la aplicación en xcode. El error sigue apareciendo.

@danidfm ¿Cuál es su objetivo de compilación en ios ? Además, intente eliminar por completo node_modules antes npm install

el objetivo de compilación es 11.0 y eliminamos por completo la carpeta node_modules.

mismo problema conmigo: probé 3.0.0, pero volví a 2.4.8

(por cierto, antes probé las versiones 3.0.0 RC y aún recibí el mismo error)

¿Podrían probar amablemente el IamExample y ver la diferencia con su proyecto? Quiero ser claro al mirar los mismos códigos.

Hola @ndejesus1227 , eso depende de mí, lo siento. Lo que realmente sucede es que su versión de iOS es inferior a 12.2. Como describe la documentación de Apple , el SKPaymentDiscount está disponible solo para iOS 12.2+.

Se suponía que debía verificar la versión real de iOS, pero terminé olvidándome.

Solo quiero decir que literalmente envió que se suponía que debía verificar la versión y evitar este problema, pero se olvidó. Su solicitud de extracción nunca debería haberse fusionado con la maestra

Intentando ejecutar un proyecto en Xcode para mi iPhone con iOS v12.3.1
Mismo error, usando react-native-iap v3.2.2.
Ir a 2.4.8 (construcción exitosa)

Creo que el motivo es la versión de iOS instalada en el dispositivo.

Esto es muy extraño, porque algunos de ellos ya confirmaron que la compilación está bien (yo también). Si tiene problemas para actualizar, intente eliminar ios/build y vuelva a intentarlo.

Acabo de intentar construir ahora. Cheque IapExample .
image

@hyochan gracias por su gran apoyo!

Acabo de probar todas las sugerencias mencionadas en este problema (eliminé por completo node_modules antes de la instalación de npm, limpié la aplicación, eliminé ios/build). Lamentablemente, sigo teniendo este problema en combinación con el objetivo de compilación 11.2 y react-native-iap v3.2.2. También intenté cambiar a la versión 2.4.8, lo que conduce a una compilación exitosa. Además, traté de configurar IapExample pero terminé en este problema nativo de reacción (https://github.com/facebook/react-native/issues/25252)

Tengo el mismo problema en un iMac con macOS 10.13. Mi macbook con 10.15 funciona bien,

¿Quizás la versión anterior de Mac no funciona? 🤔

@murilobast diferentes versiones de xCode?

Verifique la versión del sistema operativo #if __IPHONE_12_2 bloque de código de error y reconstruya

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

Me gusta esto

Me estaba encontrando con este problema. Actualizar mi xcode de 10.1 a 10.2.1 solucionó mi problema. Puedo construir mi proyecto ahora.

El mismo problema con Xcode 10.1, no puedo actualizar XCode a 10.2 porque necesita OSX 10.14.3, no compatible con mi viejo iMac atascado en 10.13.6.

@ lc3t35 , ¿cómo creaste el proyecto iOS con Xcode 10.1?

@liudmyla-schastlyvets No puedo compilar con 10.1, tuve que usar otra computadora con la última versión de Xcode :(

reaccionar nativo: 0.59.0
reaccionar-nativo- iap: 2.4.8
Código X: 10.1
Proyecto construido con éxito. Gracias

Sí, yo también ! excelente trabajo de los mantenedores!

¿Fue útil esta página
0 / 5 - 0 calificaciones