Configurar iOS Sandbox Testing
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Probar las compras in-app en iOS requiere una configuración correcta en App Store Connect y en tus dispositivos de prueba. Esta guía cubre todo lo necesario para empezar con el sandbox testing.
Requisitos
Sección titulada “Prerrequisitos”- Apple Developer Program: Membresía activa con renovación anual
- Acuerdos: “Paid Applications Agreement” firmado con la información bancaria y fiscal completa
- Proyecto de Xcode: Configurado con el bundle identifier y las capabilities correctas
Proceso de configuración
Sección titulada “Setup Process”-
Firmar el Paid Applications Agreement
En App Store Connect, navega a Acuerdos, impuestos y banca y completa lo siguiente:
- Firma el Paid Applications Agreement
- Añade tu información bancaria
- Completa los formularios de impuestos
Espera a que Apple apruebe tus datos (puede tardar 24-48 horas).
-
Crea un usuario de prueba Sandbox
En App Store Connect, ve a Usuarios y acceso > Testers de sandbox.
Haz clic en + para crear un nuevo tester de sandbox.
Importante: Usa un correo que NO esté asociado ya a un Apple ID. Puedes usar alias de email:
- Gmail:
youremail+test@gmail.com - iCloud:
youremail+test@icloud.com

- Gmail:
-
Configurar dispositivo de prueba (iOS 12+)
Desde iOS 12, ya no hace falta cerrar la sesión de iTunes para probar compras.
En tu dispositivo iOS:
- Abrir Configuración
- Toca App Store
- Desliza hasta el final
- Toca Cuenta Sandbox
- Inicia sesión con tu cuenta de prueba sandbox
-
Configurar proyecto de Xcode
Asegúrate de que tu proyecto de Xcode tenga:
Identificador del bundle
- Debe coincidir con el identificador de tu Developer Center
- Debe coincidir con el identificador de App Store Connect
Capacidad In-App Purchase
- Selecciona tu proyecto en Xcode
- Ve a Firma y capacidades
- Haz clic + Capability
- Añadir Compras in-app
-
Crea productos de In-App Purchase
En App Store Connect, ve a tu app y crea tus productos de in-app purchase (suscripciones, consumibles, etc.).
Los productos deben tener al menos el estado “Ready to Submit” para realizar pruebas en sandbox.
-
Prueba tu implementación
Haz el build y ejecuta tu app en un dispositivo de prueba. Al intentar una compra, deberías ver:
[Entorno: Sandbox]
Esta confirmación indica que estás en el entorno de sandbox y no se te cobrará dinero real.
Notas importantes
Sección titulada “Notas importantes”Características del entorno Sandbox
Sección titulada “Características del entorno Sandbox”- Sin cargos reales: Todas las compras son gratuitas en modo sandbox
- Suscripciones aceleradasLas duraciones de suscripción se acortan para agilizar las pruebas
- Suscripción de 1 semana = 3 minutos
- Suscripción de 1 mes = 5 minutos
- Suscripción de 2 meses = 10 minutos
- Suscripción de 3 meses = 15 minutos
- Suscripción de 6 meses = 30 minutos
- Suscripción de 1 año = 1 hora
- Límite de autorenovación: Las suscripciones se autorenovan hasta 6 veces en sandbox
- Cancelación inmediata: Las suscripciones canceladas expiran de inmediato
Gestión de cuentas Sandbox
Sección titulada “Sandbox Account Management”- Crea múltiples cuentas de prueba para distintos escenarios
- Usa cuentas de prueba solo en dispositivos de prueba
- No uses tu Apple ID personal para probar en sandbox
- Las cuentas de prueba pueden comprar cualquier producto sin importar la región
Uso de pruebas en sandbox
Sección titulada “Uso de pruebas en sandbox”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();if (!isBillingSupported) { throw new Error('StoreKit not supported on this device');}
// Fetch products (automatically uses sandbox when available)const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Make test purchaseconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', productType: PURCHASE_TYPE.SUBS,});
console.log('Test purchase successful!', transaction.transactionId);Verificación
Sección titulada “Verificación”Cuando esté configurado correctamente, deberías ver:
- Banner de sandbox durante la compra: “[Environment: Sandbox]”
- Los productos se cargan correctamente
- Compras completadas sin cargos reales
- Los recibos se validan correctamente
- Las suscripciones se renuevan automáticamente (a ritmo acelerado)
Solución de problemas
Sección titulada “Solución de problemas”Los productos no cargan:
- Verifica que el bundle identifier coincida con App Store Connect
- Comprueba que los acuerdos estén firmados y aprobados
- Asegúrate de que los productos tengan al menos el estado “Ready to Submit”
- Espera 2-3 horas tras crear los productos
“No se puede conectar con iTunes Store”:
- Verifica que la cuenta sandbox esté bien configurada
- Comprueba que el dispositivo tenga internet
- Prueba a cerrar y volver a iniciar sesión en la cuenta sandbox
- Reinicia la app
Las compras fallan sin error:
- Revisa la consola de Xcode en busca de mensajes de error
- Verifica que la capacidad In-App Purchase esté habilitada
- Asegúrate de que el email de la cuenta sandbox no sea un Apple ID real
- Intenta crear una nueva cuenta de prueba sandbox
Errores de validación del receipt:
- Usa el endpoint de validación de recibos de sandbox al testear
- Endpoint de producción:
https://buy.itunes.apple.com/verifyReceipt - Endpoint de sandbox:
https://sandbox.itunes.apple.com/verifyReceipt - El plugin native-purchases lo gestiona automáticamente
Duración de suscripción incorrecta:
- Recuerda que las suscripciones se aceleran en sandbox
- Usa la tabla de conversión de arriba para ver las duraciones
- Las suscripciones se renuevan automáticamente max. 6 veces en sandbox
“Este ID de Apple aún no se ha utilizado en la iTunes Store”:
- Esto es normal en cuentas de sandbox nuevas
- Continúa con la compra para activar la cuenta
- Solo ocurre la primera vez
Buenas prácticas
Sección titulada “Buenas prácticas”- Crea múltiples cuentas de prueba para distintos escenarios de prueba
- Prueba todas las duraciones de suscripción para verificar el comportamiento
- Prueba los flujos de cancelación y renovación
- Verifica que la validación de recibos funcione correctamente
- Probar la restauración de compras funcionalidad
- Verificar upgrade/downgrade de suscripción comportamiento
- Probar con malas condiciones de red
Producción vs. Sandbox
Sección titulada “Producción vs. Sandbox”| Característica | Sandbox | Producción |
|---|---|---|
| Cargos reales | No | Sí |
| Duración de la suscripción | Acelerado | Normal |
| Límite de renovación automática | 6 veces | Ilimitado |
| Efecto de la cancelación | Inmediato | Fin del periodo |
| Endpoint del recibo | URL de Sandbox | URL de Producción |
| Solo cuentas de prueba | Sí | No |
Recursos adicionales
Sección titulada “Recursos adicionales”Para más detalles, consulta la la documentación oficial de Apple StoreKit sobre pruebas en sandbox.
Continúa desde Configurar pruebas en el Sandbox de iOS
Sección titulada “Keep going from Configure iOS Sandbox Testing”Si estás usando Configurar iOS Sandbox Testing para planificar la aprobación y distribución en la tienda, conéctalo con Uso de @capgo/native-purchases para la capacidad nativa al usar @capgo/native-purchases, @capgo/capacitor-in-app-review para el detalle de implementación en @capgo/capacitor-in-app-review, Usando @capgo/capacitor-in-app-review para la capacidad nativa en «Usando @capgo/capacitor-in-app-review», @capgo/capacitor-native-market para el detalle de implementación en @capgo/capacitor-native-market, y Usando @capgo/capacitor-native-market para la capacidad nativa en «Usando @capgo/capacitor-native-market.»