Compras desde la aplicación "No se puede conectar a iTunes Store"

98

Tengo problemas para probar mis compras en la aplicación. Recupero identificadores de producto válidos, pero al comprar recibo el temido "No puedo conectarme a iTunes Store". Lo interesante es que las compras de restauración parecen funcionar: aparece el inicio de sesión de iTunes.

He: - Verificado que mis compras dentro de la aplicación estén habilitadas para la venta - Verificado, vuelto a verificar mi código fuente para que esté sincronizado con la documentación de Apple - Se agregaron usuarios de prueba apropiados - La identificación de la aplicación no contiene comodines - Las compras dentro de la aplicación están vinculadas al aplicación (la aplicación en sí está en estado rechazado por el desarrollador, las compras están listas para enviarse) - esperado - aplicación reinstalada, solución limpia, todas las cosas vudú

arkir
fuente
26
+1 para "todas las cosas del vudú", ¿no es esa la verdad?
Craig Watkinson
2
Apple, ¿por qué haces esto tan complicado?
Borzh

Respuestas:

113

Asegúrese de haber cerrado sesión en todas las cuentas de producción de iTunes en el dispositivo.

Recibí este error en mi teléfono de prueba que estaba conectado con mi cuenta real de iTunes. No puede probar aplicaciones con su cuenta de producción de iTunes, de ahí el error. Solo deseo que Apple proporcione un error mejor para evitar estas conjeturas ...

stevel
fuente
1
Mi error fue simplemente no configurar un usuario de Sandbox, olvidé ese paso. Y no inicie sesión en él desde la sección Configuración >> iTunes del dispositivo b / c que lo romperá. Espere y hágalo durante la prueba real.
Nathan Prather
También puede recibir este error al reutilizar una cuenta de sandbox antigua que probó un IAP anterior en otra aplicación con (Mi escenario). Apple realmente necesita actualizar la forma en que probamos los IAP, me estoy quedando sin correos electrónicos: 0
David Baez
Lo estoy probando en el simulador, por lo que este no debería ser el problema aquí, ¿verdad?
Usama bin Attique
1
desconectado de todas las cuentas de iTunes. es necesario indicarme que inicie sesión y luego falla la transección. Usé muchas cuentas de prueba de sandbox pero no funcionará.
BLacK HOLE
Para mí, esto tampoco funciona ... Intenté crear muchas cuentas, algunas con usuario de sandbox de iTunes conectado, otras sin usuario conectado, incluso sin confirmar el correo electrónico, ¡nada funciona!
Borzh
25

Para los recién llegados, asegúrese de que el estado de su producto de compra en la aplicación sea Ready to Submit, sin "metadatos faltantes". En mi caso, lo que faltaba era la localización del grupo de suscripción.

ingrese la descripción de la imagen aquí

Ventas Dielson
fuente
1
¡Gracias! En mi caso, faltaba una localización para el nombre para mostrar.
Justin
En mi IAP, muestra "Esperando carga". Sigo recibiendo el error
Vaibhav Jhaveri
Esto es lo que funcionó para mí también. También había iniciado sesión en mi cuenta activa de iTunes, por lo que la cuenta activa no me importaba
cherucole
10

He tenido este problema y estoy convencido de que es un error. Presenté un informe de error con el Id. De error 10108270

El problema parece ser que el usuario de prueba se está 'bloqueando' y puede tener algo que ver con el intento de comprar una compra en la aplicación en una aplicación ya lanzada con esa cuenta.

Mi solución fue crear un nuevo usuario de prueba, pero hasta que Apple se comunique conmigo, no puedo ofrecer mejores soluciones. Actualizaré esta respuesta cuando reciba respuestas.

James Webster
fuente
4
He creado un nuevo usuario de prueba, pero no ayudó.
arkir
Lamento no poder ayudar más, esa fue mi solución, es una pena que no funcione para ti. Mantendré esta respuesta actualizada cuando obtenga más información.
James Webster
Creé una nueva cuenta de prueba y la compra en la aplicación comenzó a funcionar nuevamente. ¡Gracias!
Miha Hribar
La creación de un nuevo usuario de prueba me resolvió el problema. (Hace unos días recibí un aviso cuando intentaba usar mi antiguo usuario de prueba que se había deshabilitado, así que tuve que volver a habilitarlo. Poco después, comencé a recibir el Cannot connect to iTunes storeerror. Pero una vez que creé una nueva prueba usuario, las compras funcionaron de nuevo.)
Andrew
nuevo usuario trabajó para mí. inténtalo antes de hacer cualquier otra cosa.
Okhan Okbay
6

Este problema sigue siendo persistente en 2016. Increíble. Aquí estaba mi solución:

Agrega un número de compilación. Objetivo> General> Identidades> Construir.

ArthurVonBabilonia
fuente
2
INCREÍBLE. Esto sigue siendo un problema en 2018. No uso un número de compilación en el modo de depuración porque lo incremento solo para las versiones de producción. Gracias por publicar esto.
Steven Peterson
3

Este es un hilo antiguo que está relacionado con el problema que enfrentaba hoy.

En mi caso, pude probar las compras dentro de la aplicación en mi dispositivo hasta ayer, pero dejó de funcionar hoy. Resultó que Apple había impulsado una 'Enmienda para aplicaciones pagas' para que yo la revisara y aceptara. Una vez que acepté la enmienda (sin leerla, por supuesto), todo volvió a funcionar. No tuve que crear un nuevo usuario de prueba ni ninguna otra solución.

Puede haber muchas razones por las que las compras en la aplicación no funcionen, pero asegúrese de estar configurado correctamente itunesconnecto no podrá probar las compras en la aplicación.

PicSonics
fuente
2

Estoy teniendo el mismo problema. Para mí sucede después de esta secuencia:

  • Instale la aplicación en un dispositivo que haya iniciado sesión en una cuenta del Reino Unido en iTunes
  • Inicie la aplicación y use un usuario de prueba configurado en EE. UU.
  • Se muestra un mensaje que dice que la cuenta solo es válida en EE. UU. Cierra la aplicación e inicia iTunes automáticamente.
  • Abra su aplicación nuevamente y vuelva a intentar la compra. Reciba productos pero ninguna otra devolución de llamada o error.

No sé si esto es un problema en la plataforma IAP, pero me gustaría recibir un error / devolución de llamada para manejarlo de alguna manera en mi código.

Para seguir probando sus IAP, pruebe alguno de estos:

  1. Elimine el perfil de aprovisionamiento en el área Configuración, elimine la aplicación y cierre la sesión de la Tienda en Configuración. Luego vaya a XCode y cambie las identidades de firma a "No firmar" para luego volver a colocarlas (sé cómo suena :) pero inténtelo) O
  2. Restablezca todas las configuraciones en su dispositivo (Configuración -> General ...). Obviamente perderá cualquier configuración en ese dispositivo ...
  3. Elimine la aplicación iTunes en el dispositivo (menú multitarea) y cierre la sesión de la Tienda en la Configuración

Si nada de lo anterior funciona, podría ser un problema en la plataforma IAP, consulte mis comentarios a continuación.

Juan Fran Jiménez
fuente
Gracias, pero ninguno de los métodos 1 o 2 funcionó para mí. Aún no puedo conectarme a iTunes. :(
arkir
De hecho, ¡lo he intentado yo mismo y tampoco puedo! Tengo la sensación de que este es un problema HOY / RECIENTE con la plataforma. Pero no puedo encontrar ningún enlace para confirmarlo (estado). ¡Argh !. Lo dejo por unas horas y veo si ese es el caso y es algo externo a los desarrolladores
Juan Fran Jimenez
¿Ha intentado eliminar la aplicación iTunes en el dispositivo (menú multitarea) y cerrar sesión en la Tienda en la Configuración?
Juan Fran Jimenez
Permítanme agregar que Game Center (sandbox al menos) ha sido inestable durante los últimos 5 días más o menos. Solo anoche empezó a funcionar mejor. Lo menciono porque mi código IAP no ha cambiado desde mi respuesta y ahora funciona. Me inclino a pensar que hubo un error en la plataforma IAP de Apple y que de alguna manera también estaba relacionado con Game Center.
Juan Fran Jimenez
1

También puede recibir este error al reutilizar una cuenta de sandbox antigua que probó un IAP anterior en otra aplicación con (Mi escenario). Apple realmente necesita actualizar la forma en que probamos los IAP, me estoy quedando sin correos electrónicos: 0

David Baez
fuente
Yo también tuve este problema. A veces, crear un nuevo usuario ayuda. Además, no es necesario utilizar un correo electrónico real. Pasé - ## al final del mío y sigo agregando nuevos.
Jeremías
1

Pude comprar en la aplicación en iPhone pero no en iPad (11.0.2). Intenté con todas las soluciones mencionadas pero ninguna ayuda. Después de probar todas las demás posibilidades, finalmente pude hacerlo funcionar.

Cuando crea una cuenta de prueba en iTunes Connect, no verifique la identificación del correo electrónico. Si se verifica, iap devuelve el error "No se puede conectar a iTunes". Parece extraño pero así me funcionó. En iPhone, independientemente de la verificación por correo electrónico, puedo comprar usando una cuenta de prueba.

Anish
fuente
Leí esto y al principio sonó loco, pero en realidad funcionó. Tuve exactamente el mismo problema con la cuenta de prueba que no podía realizar compras en iPad pero funcionaba bien en iPhone. ¡Muy extraño!
axanpi
Si. Esto es raro. Nuestra aplicación fue rechazada debido a este problema y tuve que explicarle al equipo de revisión de Apple el motivo y obtener la aprobación.
Anish
1

Aquí la lista de verificación exhaustiva si recibió este error "no se puede conectar a iTunes Store":

  • Asegúrese de tener un usuario de sandbox creado en App Store Connect

  • El simulador NO admite la compra desde la aplicación: prueba en un dispositivo real

  • Es posible que no se pueda acceder a la caja de arena. Verifique el estado del sistema Apple
  • Verifique que su aplicación tenga una versión de paquete (CFBundleVersion)
  • Compruebe que el producto esté disponible para la venta. ¿Lo creaste en App Store Connect?

  • Si es iOS 12 anterior, cierre sesión en cualquier cuenta de producción de iTunes en el dispositivo. De lo contrario, puede iniciar sesión dentro de la aplicación de desarrollo con su cuenta de sandbox.

Medhi
fuente
0

Este error también se produjo cuando SKProductsRequest pasó un NSSet incorrecto:

Incorrecto:

let products = NSSet(objects: ["id1", "id2"])

Correcto:

let products = NSSet(objects: "id1", "id2")
Igor
fuente
0

En mi caso, me olvidé de manejar .faileden transactionState. En particular SKPaymentQueueue.default().finishTransaction(transaction),.

1nd3e
fuente
0

El mismo problema me sucedió, y había verificado el problema, incluido el formulario de Apple , no pude encontrar una solución.

Hoy, cuando revisé el dispositivo, encontré que lo siguiente

En Configuración del dispositivo -> iTunes y App Store encontraron otro ID de Apple conectado . Así que probé signOut that y verifiqué nuevamente la compra InApp, funcionó perfectamente. Por lo tanto, verifique que el problema esté vinculado al mismo o no.

Gracias y saludos, Unnikrishnan.P

Unnikrishnan
fuente
0

Tuve que ir a Configuración> iTunes y tiendas de aplicaciones, luego desplazarme hasta la parte inferior del campo "Cuenta de zona de pruebas" y cerrar sesión desde allí. ¡¡¡Ahora está funcionando !!!

ingrese la descripción de la imagen aquí

astro4
fuente
0

Además de todos los otros métodos descritos aquí, si está trabajando con suscripciones, parece que debe asegurarse de haber generado un secreto compartido:

"Para probar u ofrecer suscripciones renovables automáticamente, debe tener un secreto compartido maestro o usar un secreto compartido específico de la aplicación para cada aplicación".

Un secreto compartido maestro se genera desde la pestaña 'Secreto compartido' de la sección 'Usuarios y acceso' de App Store Connect.

Se genera un secreto compartido específico de la aplicación donde administra las compras dentro de la aplicación de la propia aplicación.

Newtz
fuente
0

Yo arreglé el mío! Si recibe un Error Domain=SKErrorDomain Code=2 "Cannot connect to iTunes Store"error, asegúrese de insertar SKPaymentQueue.default().finishTransaction(transaction). Funcionó para mí después de agregar SKPaymentQueue.default().finishTransaction(trans)lo siguiente:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for trans in transactions{
        if trans.transactionState == .purchased {
            print("Successful.")
            SKPaymentQueue.default().finishTransaction(trans)
        } else if trans.transactionState == .failed {
            print("failed!")
            print(trans.error)
            SKPaymentQueue.default().finishTransaction(trans)
        }
    }

Encontrado en el sitio web para desarrolladores de Apple, aquí

Farhad Bagherzadeh
fuente