Guía de migración al SDK de Adapty para Flutter 3.10.0

El SDK de Adapty 3.10.0 es una versión principal que incorpora mejoras que, sin embargo, pueden requerir algunos pasos de migración por tu parte:

  1. Actualiza el método makePurchase para usar AdaptyPurchaseParameters en lugar de parámetros individuales.
  2. Reemplaza vendorProductIds por productIdentifiers en el modelo AdaptyPaywall.

Actualizar el método makePurchase

El método makePurchase ahora usa AdaptyPurchaseParameters en lugar de los argumentos individuales subscriptionUpdateParams e isOfferPersonalized. Esto proporciona mayor seguridad de tipos y permite una mayor extensibilidad de los parámetros de compra en el futuro.

- final purchaseResult = await adapty.makePurchase(
-   product: product,
-   subscriptionUpdateParams: subscriptionUpdateParams,
-   isOfferPersonalized: true,
- );

+ final parameters = AdaptyPurchaseParametersBuilder()
+   ..setSubscriptionUpdateParams(subscriptionUpdateParams)
+   ..setIsOfferPersonalized(true)
+   ..setObfuscatedAccountId('your-account-id')
+   ..setObfuscatedProfileId('your-profile-id');

+ final purchaseResult = await adapty.makePurchase(
+   product: product,
+   parameters: parameters.build(),
+ );

Si no necesitas parámetros adicionales, puedes usar simplemente:

final purchaseResult = await adapty.makePurchase(
  product: product,
);

Actualizar el uso del modelo AdaptyPaywall

La propiedad vendorProductIds ha quedado obsoleta en favor de productIdentifiers. La nueva propiedad devuelve objetos AdaptyProductIdentifier en lugar de cadenas de texto simples, lo que ofrece información de producto con una estructura más organizada.

- paywall.vendorProductIds.map((vendorId) => 
-   ListTextTile(title: vendorId)
- ).toList()

+ paywall.productIdentifiers.map((productId) => 
+   ListTextTile(title: productId.vendorProductId)
+ ).toList()

El objeto AdaptyProductIdentifier proporciona acceso al ID del producto del proveedor a través de la propiedad vendorProductId, manteniendo la misma funcionalidad y ofreciendo una mejor estructura para mejoras futuras.

Compatibilidad con versiones anteriores

Ambos cambios mantienen la compatibilidad con versiones anteriores:

  • Los parámetros antiguos en makePurchase están obsoletos, pero siguen funcionando
  • La propiedad vendorProductIds está obsoleta, pero sigue siendo accesible
  • El código existente seguirá funcionando, aunque verás advertencias de obsolescencia

Te recomendamos actualizar tu código para usar las nuevas API y garantizar la compatibilidad futura, además de aprovechar la mayor seguridad de tipos y extensibilidad.