Saltar al contenido

Configurar iOS Sandbox Testing

GitHub

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.

  • 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”
  1. 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).

  2. 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

    Crear tester de sandbox

  3. 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:

    1. Abrir Configuración
    2. Toca App Store
    3. Desliza hasta el final
    4. Toca Cuenta Sandbox
    5. Inicia sesión con tu cuenta de prueba sandbox
  4. 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

    1. Selecciona tu proyecto en Xcode
    2. Ve a Firma y capacidades
    3. Haz clic + Capability
    4. Añadir Compras in-app
  5. 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.

  6. 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.

  • 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
  • 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
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 purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

Cuando esté configurado correctamente, deberías ver:

  1. Banner de sandbox durante la compra: “[Environment: Sandbox]”
  2. Los productos se cargan correctamente
  3. Compras completadas sin cargos reales
  4. Los recibos se validan correctamente
  5. Las suscripciones se renuevan automáticamente (a ritmo acelerado)

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
  1. Crea múltiples cuentas de prueba para distintos escenarios de prueba
  2. Prueba todas las duraciones de suscripción para verificar el comportamiento
  3. Prueba los flujos de cancelación y renovación
  4. Verifica que la validación de recibos funcione correctamente
  5. Probar la restauración de compras funcionalidad
  6. Verificar upgrade/downgrade de suscripción comportamiento
  7. Probar con malas condiciones de red
CaracterísticaSandboxProducción
Cargos realesNoSí
Duración de la suscripciónAceleradoNormal
Límite de renovación automática6 vecesIlimitado
Efecto de la cancelaciónInmediatoFin del periodo
Endpoint del reciboURL de SandboxURL de Producción
Solo cuentas de pruebaSíNo

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.»