Habilitar compras con Flow Builder en iOS SDK

Para habilitar las compras in-app, necesitas entender tres conceptos clave:

  • Productos – todo lo que los usuarios pueden comprar (suscripciones, consumibles, acceso de por vida)
  • Flows – secuencias de pantallas que presentan productos a los usuarios, creadas en el Flow Builder sin código. El SDK los recupera mediante getFlow. Si prefieres construir la interfaz en tu propio código, usa un paywall en su lugar — consulta Implementar paywalls manualmente.
  • Placements – dónde y cuándo muestras los flows en tu app (por ejemplo, main, onboarding, settings). Vincula los flows a los placements en el dashboard y luego solicítalos por ID de placement en tu código. Esto facilita ejecutar pruebas A/B y mostrar flows distintos a diferentes usuarios. Adapty te ofrece tres formas de habilitar compras en tu aplicación. Selecciona la que mejor se adapte a tus requisitos: | Implementación | Complejidad | Cuándo usarlo | |---|---|---| | Adapty Flow Builder | ✅ Fácil | Creas un flow completo y listo para compras en el editor sin código. Adapty lo renderiza automáticamente y gestiona todo el proceso de compra, la validación de recibos y la gestión de suscripciones. | | Paywalls creados manualmente | 🟡 Media | Implementas la UI de tu paywall en el código de tu app, pero sigues obteniendo el objeto flow desde Adapty para mantener flexibilidad en los productos ofrecidos. Consulta la guía. | | Modo Observer | 🔴 Difícil | Ya tienes tu propia infraestructura de gestión de compras y quieres seguir usándola. Ten en cuenta que el modo observer tiene sus limitaciones en Adapty. Consulta el artículo. |

Los pasos a continuación muestran cómo implementar un flow creado en el Adapty Flow Builder.

Si prefieres construir la UI del paywall tú mismo, consulta Implementar paywalls manualmente.

Para mostrar un flow creado en el Adapty Flow Builder, en el código de tu app solo necesitas:

  1. Obtener el flow: Obtenlo desde Adapty.
  2. Mostrarlo y Adapty gestionará las compras por ti: Muestra la vista en tu app.
  3. Gestionar las acciones de los botones: Asocia las interacciones del usuario con la respuesta de tu app. Por ejemplo, abrir enlaces o cerrar el flow cuando los usuarios pulsen botones.

Antes de empezar

Antes de comenzar, completa estos pasos:

  1. Conecta tu app al App Store en el Adapty Dashboard.
  2. Crea tus productos en Adapty.
  3. Crea un paywall y añade productos.
  4. Crea un placement y añade tu paywall.
  5. Instala y activa el SDK de Adapty en el código de tu app.

La forma más rápida de completar estos pasos es seguir la guía de inicio rápido o crear paywalls y placements usando la CLI para desarrolladores.

1. Obtener el flow

Tus flows están asociados a placements configurados en el dashboard. Los placements te permiten ejecutar diferentes flows para distintas audiencias o ejecutar pruebas A/B.

Para obtener un flow creado en el Adapty Flow Builder, necesitas:

  1. Obtener el objeto flow por el ID del placement usando el método getFlow y comprobar si tiene una configuración de vista.
  2. Obtener la configuración de vista usando el método getFlowConfiguration. Contiene los elementos de UI y el estilo necesarios para mostrar el flow.

func loadFlow() async {
    let flow = try await Adapty.getFlow(placementId: "YOUR_PLACEMENT_ID")

    guard flow.hasViewConfiguration else {
        print("Flow doesn't have a view configuration")
        return
    }

    flowConfiguration = try await AdaptyUI.getFlowConfiguration(forFlow: flow)
}

2. Mostrar el flow

Ahora que tienes la configuración del flow, basta con añadir unas pocas líneas para mostrarlo.

Para más detalles sobre cómo mostrar un flow, consulta nuestra guía.

3. Gestionar las acciones de los botones

Cuando los usuarios pulsan botones, el SDK de iOS gestiona automáticamente las compras, la restauración, el cierre del flow y la apertura de enlaces.

Sin embargo, otros botones tienen IDs personalizados o predefinidos y requieren que gestiones las acciones en tu código. O puede que quieras sobreescribir su comportamiento por defecto.

Por ejemplo, así es como gestionar el botón de cierre. En UIKit, el SDK descarta el controlador automáticamente cuando se dispara .close — sobreescríbelo solo si quieres un comportamiento personalizado. En SwiftUI, debes establecer tu binding isPresented a false tú mismo.

Lee nuestras guías sobre cómo gestionar acciones y eventos de los botones.

Próximos pasos

¿Tienes preguntas o estás teniendo algún problema? Consulta nuestro foro de soporte donde encontrarás respuestas a preguntas frecuentes o podrás plantear las tuyas. ¡Nuestro equipo y la comunidad están aquí para ayudarte!

Tu paywall está listo para mostrarse en la app. Prueba tus compras en modo sandbox para asegurarte de que puedes completar una compra de prueba desde el paywall.

Ahora necesitas comprobar el nivel de acceso de los usuarios para asegurarte de mostrar un paywall o dar acceso a las funciones de pago a los usuarios correctos.

Ejemplo completo

Aquí puedes ver cómo integrar todos los pasos de esta guía en tu app.