将 Adapty Flutter 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 表示无限制。