Migrar el SDK de React Native de Adapty a v4.1
El SDK de React Native de Adapty 4.1 cambia la forma en que se activa Adapty Attribution, renombra las APIs de atribución externa y cambia el formato del archivo de respaldo. También permite que tu app tome el control de las compras in-app promocionadas en el App Store y recupera el indicador hasViewConfiguration en AdaptyFlow.
Las APIs renombradas suponen un cambio radical. Los nombres anteriores han sido eliminados por completo — no existen alias obsoletos que sirvan de puente. El código que verifica tipos contra la versión 4.0.x fallará en la 4.1 hasta que renombres todos los puntos de llamada indicados a continuación.
Si todavía estás en la versión 3.x, empieza por Migrar a v4.0 y luego sigue esta guía.
Referencia rápida
| v4.0 | v4.1 |
|---|---|
| Atribución de Adapty habilitada automáticamente | Atribución de Adapty deshabilitada por defecto; actívala con adaptyAttributionEnabled: true |
adapty.updateAttribution(attribution, source) | adapty.updateExternalAttribution(attribution, provider) |
AttributionSource | AdaptyExternalAttributionProvider, con un nuevo valor 'custom' |
AdaptyProfile.appliedAttributionSources | AdaptyProfile.appliedExternalAttributionProviders |
| Archivo de respaldo descargado para 4.0 | Nuevo formato de archivo de respaldo; descarga el archivo de nuevo |
| Las compras in-app promocionadas se completaban automáticamente, sin posibilidad de interceptarlas | El evento 'onPromotedPurchaseReceived' y adapty.makePromotedPurchase(product) delegan la finalización a tu app |
hasViewConfiguration ausente en AdaptyFlow | hasViewConfiguration de vuelta en AdaptyFlow |
| Proyecto iOS integrado con CocoaPods | CocoaPods, o la integración SPM de React Native en un proyecto React Native puro |
Instalación
Actualiza el paquete react-native-adapty:
npm install react-native-adapty@latest
# or
yarn add react-native-adapty@latest
Los requisitos de tiempo de ejecución no han cambiado respecto a la versión 4.0: iOS 15.0 y React Native 0.75. Consulta Instalar el SDK de Adapty para ver la configuración completa.
4.1 también admite la integración SPM de React Native, que reemplaza CocoaPods en tu proyecto iOS y requiere React Native 0.87 o superior. Aplica únicamente a proyectos React Native puros, CocoaPods sigue siendo la opción predeterminada y la migración es opcional — consulta Configura tu proyecto iOS. Si tu app usa el Modo Niños, cada gestor de paquetes lo aplica de forma diferente.
⚠️ La atribución de Adapty está desactivada por defecto
Si actualizas al SDK 4.1 y no te registras, la atribución de Adapty deja de funcionar sin avisar — las instalaciones dejan de registrarse y no recibes ninguna advertencia.
En la versión 4.0 y anteriores, el SDK registraba las instalaciones para Adapty Attribution automáticamente. A partir de la versión 4.1, esto está desactivado por defecto: el SDK no registra instalaciones, los eventos 'onInstallationDetailsSuccess' y 'onInstallationDetailsFail' nunca se disparan, y getCurrentInstallationStatus devuelve el estado not_available.
Si usas Adapty Attribution, actívalo al inicializar el SDK:
adapty.activate('YOUR_PUBLIC_SDK_KEY', {
+ adaptyAttributionEnabled: true,
});
Si no usas Adapty Attribution, no es necesario realizar ningún cambio.
APIs de atribución externa renombradas
Las APIs que pasan datos de atribución desde un proveedor externo (Adjust, AppsFlyer, Branch, Tenjin o uno personalizado) se han renombrado para coincidir con los SDKs nativos.
updateAttribution → updateExternalAttribution
El método ha sido renombrado y su segundo parámetro ha pasado de llamarse source a provider. Los datos de atribución siguen siendo un objeto plano:
- await adapty.updateAttribution(attribution, 'adjust');
+ await adapty.updateExternalAttribution(attribution, 'adjust');
AttributionSource → AdaptyExternalAttributionProvider
El tipo de proveedor cambia de nombre. Sigue siendo una unión abierta — los valores predefinidos son 'apple_search_ads', 'adjust', 'appsflyer', 'branch', 'tenjin', y un nuevo 'custom' para proveedores con los que Adapty no se integra directamente. También se acepta cualquier otra cadena, de modo que si Adapty añade un proveedor más adelante, funciona sin actualizar el SDK:
- import type { AttributionSource } from 'react-native-adapty';
+ import type { AdaptyExternalAttributionProvider } from 'react-native-adapty';
AdaptyProfile.appliedAttributionSources → appliedExternalAttributionProviders
La propiedad del perfil que lista los proveedores de atribución aplicados al perfil se renombra, y el tipo de sus elementos cambia en consecuencia:
- if (profile.appliedAttributionSources?.includes('apple_search_ads')) {
+ if (profile.appliedExternalAttributionProviders?.includes('apple_search_ads')) {
// Apple Ads attribution has been applied
}
El código que la lee necesita actualizarse — consulta Mostrar un paywall dirigido de Apple Ads.
Archivos de respaldo
El formato del archivo de respaldo cambió en el SDK 4.1. Descarga el archivo de nuevo desde Placements > Fallbacks y añádelo a tu app, aunque ya lo hayas descargado para la versión 4.0.
Este paso no genera ningún error de compilación. Si lo omites, setFallback rechazará el archivo obsoleto y todos los placements perderán su paywall de respaldo.
hasViewConfiguration regresa a AdaptyFlow
La versión 4.0 eliminó hasViewConfiguration cuando AdaptyPaywall pasó a llamarse AdaptyFlow. La 4.1 la restaura en AdaptyFlow, de modo que una rama hasViewConfiguration de la época de v3 vuelve a funcionar en cuanto renombras la función y el objeto que lee:
- if (paywall.hasViewConfiguration) {
- const view = await createPaywallView(paywall);
+ if (flow.hasViewConfiguration) {
+ const view = await createFlowView(flow);
await view.present();
}
En 4.0, cuando el flag no está presente, createFlowView lanza un AdaptyError para un flow sin configuración de vista. Esto sigue siendo válido en 4.1 — el flag es una alternativa a capturar el error, no un reemplazo. Consulta Obtener la configuración de vista.
Compras in-app promocionadas en la App Store
En la versión 4.0, una compra in-app promocionada en tu página de producto de la App Store se completaba por sí sola y Adapty registraba la transacción como cualquier otra, pero tu app no tenía forma de interceptarla. La versión 4.1 añade ese hook, por lo que se trata de una nueva funcionalidad y no de un paso de migración: sin código propio, el SDK sigue completando las compras promocionadas por ti.
Escribe código solo para hacerte cargo de la finalización tú mismo, por ejemplo, para mostrar primero una pantalla. Registra un listener para el nuevo evento 'onPromotedPurchaseReceived' y completa la compra con adapty.makePromotedPurchase. Mientras ese listener esté registrado, el SDK deja de completar las compras promocionadas por ti.
El hook está construido sobre StoreKit 2 y requiere iOS 16.4 o posterior. Por debajo de iOS 16.4, el evento nunca se dispara y las compras promocionadas se completan como lo hacían en la versión 4.0. El evento tampoco se dispara en Android.