迁移 Adapty Flutter SDK 至 v3.0

Adapty Flutter SDK v3.0 引入了重大变更,本指南将帮助你顺利完成迁移。

主要变更

1. 公共 API 变更

AdaptyPaywall

remoteConfig 属性现在返回 AdaptyRemoteConfig? 而非 Map<String, dynamic>?

AdaptyRemoteConfig 是一个包含以下属性的新类:

  • id — 远程配置的标识符
  • string — 原始字符串值
  • dataValue — 解析后的 Map<String, dynamic>?

迁移前:

final remoteConfig = paywall.remoteConfig; // Map<String, dynamic>?

迁移后:

final remoteConfig = paywall.remoteConfig; // AdaptyRemoteConfig?
final data = paywall.remoteConfig?.dataValue; // Map<String, dynamic>?

2. AdaptyPaywallProduct

variationId 属性已重命名为 paywallVariationId

迁移前:

final variationId = product.variationId;

迁移后:

final variationId = product.paywallVariationId;

3. Paywall Builder

SDK v3.0 支持新版付费墙编辑工具。如需了解如何展示用付费墙编辑工具创建的付费墙,请参阅展示付费墙编辑工具付费墙。 Adapty SDK v3.0 带来了全新的 Adapty 付费墙编辑工具支持,这是一款全新版本的无代码、用户友好的付费墙创建工具。凭借其极高的灵活性和丰富的设计能力,您的付费墙将变得更加高效和盈利。

请注意,AdaptyUI 库已被弃用,现已作为 AdaptySDK 的一部分包含在内。

移除 AdaptyUI SDK

  1. AdaptyUI 已成为 Adapty SDK 的一个模块,请从您的 pubspec.yaml 文件中移除 adapty_ui_flutter

    dependencies:
    + adapty_flutter: ^3.2.1
    - adapty_flutter: ^2.10.3
    - adapty_ui_flutter: ^2.1.3
  2. 运行:

    flutter pub get

配置 Adapty SDK

此前,您需要使用 Adapty-Info.plistAndroidManifest.xml 文件来配置 Adapty SDK。

现在无需使用额外的配置文件,您可以在激活时直接提供所有必要参数。

您只需配置一次 Adapty SDK,通常在应用程序生命周期开始时进行。

激活 Adapty SDK 的 Adapty 模块

  1. 按如下方式从应用中移除 AdaptyUI SDK 的导入:

    import 'package:adapty_flutter/adapty_flutter.dart';
    - import 'package:adapty_ui_flutter/adapty_ui_flutter.dart';
  2. 按如下方式更新 Adapty SDK 的激活代码:

   try {
   -	Adapty().activate();  
   +    await Adapty().activate(
   +        configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
   +         ..withLogLevel(AdaptyLogLevel.debug)
   +         ..withObserverMode(false)
   +         ..withCustomerUserId(null)
   +         ..withIpAddressCollectionDisabled(false)
   +         ..withIdfaCollectionDisabled(false),
   +   );
   } catch (e) {
       // handle the error
   }

参数:

参数是否必填描述
PUBLIC_SDK_KEY必填可在 Adapty 应用设置的 Public SDK key 字段中找到该密钥:App settings -> General 标签页 -> API keys 子部分
withLogLevel可选Adapty 会记录错误及其他关键信息,帮助您了解应用的运行状况。可用的日志级别如下:
  • error:仅记录错误。
  • warn:记录错误,以及 SDK 中不会导致严重错误但值得关注的消息。
  • info:记录错误、警告及重要信息,例如各模块生命周期的日志。
  • verbose:记录所有可能在调试时有用的附加信息,如函数调用、API 请求等。
withObserverMode可选

一个布尔值,用于控制观察者模式。如果您自行处理购买和订阅状态,并使用 Adapty 发送订阅事件和分析数据,请将其开启。

默认值为 false

🚧 在观察者模式下,Adapty SDK 不会关闭任何交易,请确保您自行处理。

withCustomerUserId可选您系统中的用户标识符。我们会在订阅和分析事件中发送该标识符,以便将事件归因到正确的用户画像。您也可以在 Profiles and Segments 菜单中通过 customerUserId 查找用户。
withIdfaCollectionDisabled可选

设为 true 可禁用 IDFA 的收集与共享。

以及用户 IP 地址的共享。

默认值为 false

有关 IDFA 收集的更多详情,请参阅分析集成部分。

withIpAddressCollectionDisabled可选

设为 true 可禁用用户 IP 地址的收集与共享。

默认值为 false

激活 Adapty SDK 的 AdaptyUI 模块

只有当你计划使用付费墙编辑工具时,才需要配置 AdaptyUI 模块:

try {
    final mediaCache = AdaptyUIMediaCacheConfiguration(
        memoryStorageTotalCostLimit: 100 * 1024 * 1024, // 100MB
        memoryStorageCountLimit: 2147483647, // 2^31 - 1, max int value in Dart
        diskStorageSizeLimit: 100 * 1024 * 1024, // 100MB
    );

    await AdaptyUI().activate(
        configuration: AdaptyUIConfiguration(mediaCache: mediaCache),
        observer: <AdaptyUIObserver Implementation>,
    );
} catch (e) {
    // handle the error
}

请注意,AdaptyUI 配置是可选的,您可以在不使用配置的情况下激活 AdaptyUI 模块。但如果您使用配置,其中所有参数均为必填项。

参数:

参数是否必填描述
memoryStorageTotalCostLimit必填存储空间的总容量限制,单位为字节。
memoryStorageCountLimit必填内存存储的最大条目数量。
diskStorageSizeLimit必填存储在磁盘上的文件大小限制,单位为字节。0 表示不限制。