Руководство по миграции на Flutter Adapty SDK 3.10.0
Adapty SDK 3.10.0 — это крупный релиз с рядом улучшений, которые могут потребовать миграции:
- Обновите метод
makePurchase, чтобы использоватьAdaptyPurchaseParametersвместо отдельных параметров. - Замените
vendorProductIdsнаproductIdentifiersв моделиAdaptyPaywall.
Обновление метода makePurchase
Метод makePurchase теперь принимает AdaptyPurchaseParameters вместо отдельных аргументов subscriptionUpdateParams и isOfferPersonalized. Это обеспечивает более строгую типизацию и упрощает добавление новых параметров покупки в будущем.
- 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(),
+ );
Если дополнительные параметры не нужны, достаточно написать:
final purchaseResult = await adapty.makePurchase(
product: product,
);
Обновление использования модели AdaptyPaywall
Свойство vendorProductIds устарело и заменено на productIdentifiers. Новое свойство возвращает объекты AdaptyProductIdentifier вместо обычных строк, что обеспечивает более структурированную информацию о продуктах.
- paywall.vendorProductIds.map((vendorId) =>
- ListTextTile(title: vendorId)
- ).toList()
+ paywall.productIdentifiers.map((productId) =>
+ ListTextTile(title: productId.vendorProductId)
+ ).toList()
Объект AdaptyProductIdentifier предоставляет доступ к идентификатору продукта через свойство vendorProductId, сохраняя прежнюю функциональность и обеспечивая лучшую структуру для будущих улучшений.
Обратная совместимость
Оба изменения обратно совместимы:
- Старые параметры в
makePurchaseустарели, но продолжают работать - Свойство
vendorProductIdsустарело, но по-прежнему доступно - Существующий код продолжит работать, однако будут отображаться предупреждения об устаревании
Рекомендуем перейти на новые API, чтобы обеспечить совместимость в будущем и воспользоваться преимуществами улучшенной типизации и расширяемости.