React-native-iap: iOS 14: error desconocido de getProducts () (RN 0.62.2 - 0.63)

Creado en 18 sept. 2020  ·  50Comentarios  ·  Fuente: dooboolab/react-native-iap

RNIap.getProducts () parece estar roto en la última versión de React Native, solo devuelve un error desconocido.

Versión de react-native-iap

4.6.1

Versión de react-native

0.63.0

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

iOS

Comportamiento esperado

productos a buscar.

Comportamiento real

se devuelve un error desconocido

Entorno probado (¿Emulador? ¿Dispositivo real?)

Simulador de iOS

Pasos para reproducir el comportamiento

Simplemente llame a RNIap.getProducts () o RNIap.getSubscriptions ().

📱 iOS 🙏 help wanted

Comentario más útil

Todos 50 comentarios

Estoy experimentando esto también con simuladores de iOS que ejecutan iOS 14.0 pero no tengo problemas con otras versiones de simuladores (específicamente, iOS 13.5).

Esto parece ser un problema por parte de Apple con el simulador de iOS 14.0: https://developer.apple.com/forums/thread/125164

Encontré ese enlace a través de: https://github.com/dooboolab/react-native-iap/issues/1091

Gracias @joeyscarim. Ahora me he comunicado con Apple y estoy esperando sus comentarios.

@rossbulat mismo problema en 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)

Hola a todos,

También estamos experimentando esto. Después de actualizar a v4.6.1, casi todas las veces también experimentamos el "error desconocido".

Screenshot 2020-09-23 at 09 53 25

Hola chicos,
Creo que encontré la solución a nuestro problema. Debe asegurarse de que initConnection esté ejecutando.
En mi ejemplo, simplemente puse requestPurchase/requestSubscription dentro de initConnection . Antes funcionaba sin él, ahora es imprescindible.

@Hellhiem Tengo initConnection y sigo recibiendo el error.

Ejecutar la siguiente función verifica que el error aún está ahí con initConnection ()

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

@rossbulat que sucede cuando intentas esto:

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

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

Hice lo mismo pero dentro then puse requestPurchase/requestSubscription

@Hellhiem ¡ Sigue recibiendo un error desconocido! (esto es lo mismo que mi código pero usando entonces en lugar de la sintaxis async / await).

He echado un vistazo a las API del módulo nativo, la función getItems() parece ser el punto de falla. ¿Es posible que uno de los desarrolladores principales verifique que esta llamada a la API nativa funciona como se esperaba en iOS 14?

@Hellhiem He probado tu código, pero sigo recibiendo el mismo error desconocido.

Los ingenieros de Apple están investigando el caso a través de Feedback Assistant. Actualizaré este hilo cuando determinemos cuál es el problema.

Estoy experimentando este problema en el simulador de iOS que ejecuta iOS 14.0

Mismo problema. El simulador de IOS 14 con xcode 12 no puede recuperar productos y arrojar un error desconocido

Mismo problema.

El mismo problema para el dispositivo real durante la revisión de Apple

Tengo el mismo problema pero con la función getSubscriptions

Hice algunas pruebas y, para mí, [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers] simplemente devuelve vacío ...

mismo problema

Tiene el mismo problema con getSubscriptions en el lado de IOS, se lanzó UNKNOWN_ERROR, Xcode 12.0, react-native 0.62.2

@rossbulat alguna suerte? También me encuentro con el mismo problema

@rossbulat alguna suerte? También me encuentro con el mismo problema

¿Estás usando un dispositivo o un simulador?

Hola desarrolladores lo resolví. Hice lo siguiente

  1. Me aseguré de aceptar todos los términos y condiciones en los acuerdos de usuario asegurándome de que el estado esté activo
  2. Me aseguré de que el ID de producto / suscripción en la sección de compras dentro de la aplicación de su aplicación esté marcado como listo para enviar

PD: mi prueba fue en un dispositivo local

El problema es únicamente en el simulador de iOS 14. Los dispositivos reales funcionan.

Apple se ha quedado en silencio durante la última semana, no se han compartido actualizaciones conmigo.

Para el simulador, debe agregar el archivo de configuración StoreKit al proyecto y seleccionarlo en su esquema de ejecución. Pero tuve este error en el dispositivo

El problema es únicamente en el simulador de iOS 14. Los dispositivos reales funcionan.

Apple se ha quedado en silencio durante la última semana, no se han compartido actualizaciones conmigo.

Probablemente, las pruebas en las compras de aplicaciones ahora están restringidas a dispositivos reales, porque no puedo encontrar la opción para agregar un probador de sandbox en el simulador de iOS

El problema es únicamente en el simulador de iOS 14. Los dispositivos reales funcionan.

Apple se ha quedado en silencio durante la última semana, no se han compartido actualizaciones conmigo.

Probablemente, las pruebas en las compras de aplicaciones ahora están restringidas a dispositivos reales, porque no puedo encontrar la opción para agregar un probador de sandbox en el simulador de iOS

Está gestionado por el archivo de configuración storekit

@ilyasbat Seguí estas instrucciones,

Lo resolví mediante la configuración de strorekit.
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Añadiendo el archivo de configuración storekit, reconstruyéndolo y ejecutándolo ahora en el simulador IOS 14 con xcode 12. Funciona perfectamente y puedo comprar artículos en el simulador por primera vez.

@ilyasbat, ¿esta solución es segura? ¿Qué pasará si cambio mis ofertas de productos en la tienda de aplicaciones después, por ejemplo, cambio el precio? ¿También se actualizarán en la aplicación o la aplicación se bloqueará con la configuración storeConfiguration.storekit ?

@ilyasbat, ¿esta solución es segura? ¿Qué pasará si cambio mis ofertas de productos en la tienda de aplicaciones después, por ejemplo, cambio el precio? ¿También se actualizarán en la aplicación o la aplicación se bloqueará con la configuración storeConfiguration.storekit ?

Encontré este artículo realmente bueno:
https://www.appcoda.com/storekit-testing/

Por lo que estoy leyendo, parece que el archivo de configuración de StoreKit es solo para depurar / probar:

El siguiente campo es el precio de la compra desde la aplicación. Aunque hay niveles de precios en App Store Connect, aquí podemos proporcionar cualquier valor que queramos como texto libre. El precio es solo por razones de prueba, no se aplicará a las compras reales dentro de la aplicación y, por supuesto, no habrá ningún cargo. Así que siéntase libre de establecer el precio que desee. Para esta compra en la aplicación específica que estamos configurando aquí, el valor de 0,99 está bien. La moneda del precio será la moneda que coincida con la configuración regional del Simulador, o cualquier configuración regional que se haya seleccionado manualmente (hablaremos de eso más adelante). Entonces, 0,99 pueden ser dólares, euros, yenes, etc.

No estoy seguro de si esto se sabe todavía (no lo vi mencionado anteriormente): descubrí que sigo obteniendo Error: UNKNOWN_ERROR cuando ejecuto npx react-native run-ios desde la terminal, pero cuando Ejecuto la aplicación desde xcode, la compra en la aplicación (con storekit) funciona bien.

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

xcode v12
macos 10.15.7

Por lo tanto, en la actualidad, ¿no es posible utilizar react-native-iap en producción en un dispositivo con iOS 14? Dado que la única forma de arreglar el [Error: UNKNOWN_ERROR] es agregar un archivo Configuration.StoreKit , pero solo con fines de prueba, no para una versión de producción.

¿Alguien tiene otra solución?

Actualmente uso esta biblioteca para compras dentro de la aplicación en producción, Android e iOS (así que sí, iOS 14). Pude hacer que los usuarios probaran con éxito en TestFlight (nota: no pueden usar el inicio de sesión con huellas dactilares, tienen que ingresar la identificación y la contraseña de Apple siempre , que es una política de Apple, no una falla de esta biblioteca) y las cosas están funcionando en producción .

¿Ha intentado probar su aplicación en TestFlight @RobinChailley ?

Obtuve 2 de mis dispositivos reales en IOS 14.1 trabajando con cuentas sandbox nuevamente haciendo lo siguiente.

Siga los pasos para crear la configuración de StoreKit, selecciónela en su esquema Ejecutar y luego compile en su dispositivo. No estoy seguro de si este paso es necesario, pero busque algunos productos. Puede realizar una compra en este punto, pero el oyente de compras producirá un error ya que el transactionId de las compras es "0".

A continuación, anule la selección de la configuración de StoreKit del esquema Ejecutar y vuelva a compilar en su dispositivo. Esta vez, cuando obtenga productos, se le pedirá que inicie sesión. Por alguna razón, ahora puedo iniciar sesión con mis cuentas de sandbox. No estoy seguro de por qué, pero tal vez borre o restablezca algo.

@karltaylor Sí.

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

Nota: mi PRODUCT_ID coincidió con el texto de la columna "ID de producto" en _appstoreconnect -> App Store -> Manage_

¿Cuál es el "estado" de sus compras en la aplicación en _appstoreconnect_?

@karltaylor Sí.

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

Nota: mi PRODUCT_ID coincidió con el texto de la columna "ID de producto" en _appstoreconnect -> App Store -> Manage_

¿Cuál es el "estado" de sus compras en la aplicación en _appstoreconnect_?

Lo siento @Beamanator ,

Después de agregar el archivo Configuration.storekit los tenía trabajando en mi simulador y en Testflight. 👍

@rossbulat ¿

No estoy seguro de si esto se sabe todavía (no lo vi mencionado anteriormente): descubrí que sigo obteniendo Error: UNKNOWN_ERROR cuando ejecuto npx react-native run-ios desde la terminal, pero cuando Ejecuto la aplicación desde xcode, la compra en la aplicación (con storekit) funciona bien.

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

xcode v12
macos 10.15.7

Está bien conmigo
"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12
macos 11.0.1

Funcionó así en modo de depuración, pero no en testflight. ¿Tendría una configuración diferente?

Sigo recibiendo el mismo "Error desconocido" en iOS.

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

Xcode 12.2

¿Alguna idea para resolver este problema sin usar la configuración de StoreKit?

Sigo recibiendo el mismo "Error desconocido" en iOS.

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

Xcode 12.2

¿Alguna idea para resolver este problema sin usar la configuración de StoreKit?

¿Qué versión del simulador usaste?
El mismo problema con iOS 14.2 y funciona bien con iOS 13.5

Lo mismo para mí cuando se ejecuta en el simulador iOS 14.2 y funciona bien con el simulador iOS 13.x.

Y tengo el mismo problema con el equipo de validación de Apple, creo que están ejecutando mi aplicación en un simulador ...

Descubrimos que sus productos de compra en la aplicación presentaban uno o más errores cuando se revisaban en un iPad con iOS 14.0.1 en Wi-Fi.

  • Lanzó la aplicación
  • Tocado en Configuración, arriba a la izquierda
  • Tocado en Eliminar anuncios
  • La aplicación comenzó a cargarse indefinidamente.

¿Alguien de aquí ya ha intentado publicar compras en la aplicación no consumibles en producción?

Lo mismo para mí cuando se ejecuta en el simulador iOS 14.2 y funciona bien con el simulador iOS 13.x.

Y tengo el mismo problema con el equipo de validación de Apple, creo que están ejecutando mi aplicación en un simulador ...

Descubrimos que sus productos de compra en la aplicación presentaban uno o más errores cuando se revisaban en un iPad con iOS 14.0.1 en Wi-Fi.

  • Lanzó la aplicación
  • Tocado en Configuración, arriba a la izquierda
  • Tocado en Eliminar anuncios
  • La aplicación comenzó a cargarse indefinidamente.

¿Alguien de aquí ya ha intentado publicar compras en la aplicación no consumibles en producción?

también tiene retrasos en la aprobación de precios y Apple no aprueba su solicitud porque no puede comprar?

Hice todas mis pruebas en un dispositivo real con un usuario de sandbox. Todo funciona para comprar el producto, pero Apple rechaza mi construcción debido al error "PRODUCTO DESCONOCIDO" en el simulador (iOS 14).

Estoy intentando publicar esta versión de la aplicación con una compra dentro de la aplicación no consumible en la App Store desde octubre ...

Hice todas mis pruebas en un dispositivo real con un usuario de sandbox. Todo funciona para comprar el producto, pero Apple rechaza mi construcción debido al error "PRODUCTO DESCONOCIDO" en el simulador (iOS 14).

Estoy intentando publicar esta versión de la aplicación con una compra dentro de la aplicación no consumible en la App Store desde octubre ...

Eche un vistazo a nuestro problema.

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

También pasé por el mismo problema y mi solicitud fue lanzada después de tres semanas.

Hice todas mis pruebas en un dispositivo real con un usuario de sandbox. Todo funciona para comprar el producto, pero Apple rechaza mi construcción debido al error "PRODUCTO DESCONOCIDO" en el simulador (iOS 14).
Estoy intentando publicar esta versión de la aplicación con una compra dentro de la aplicación no consumible en la App Store desde octubre ...

Eche un vistazo a nuestro problema.

1200

También pasé por el mismo problema y mi solicitud fue lanzada después de tres semanas.

Mi compilación fue aceptada por Apple, ¡muchas gracias por tu ayuda!

lo respondí aquí

probar en un dispositivo real

Responder

Tener este problema también en los simuladores de IOS 14. Sería bueno probar los pagos sin tener que usar un dispositivo real.

No trabajar con este entorno

  • Mac 11.2
  • Xcode 12.4
  • Simulador con iOS 14 y superior

Trabajando con este entorno

  • Mac 11.2
  • Xcode 12.4
  • Simulador con iOS 13.7 y versiones anteriores

En el simulador iOS 14 esto está funcionando
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

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