迁移 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
-
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 -
运行:
flutter pub get
配置 Adapty SDK
此前,您需要使用 Adapty-Info.plist 和 AndroidManifest.xml 文件来配置 Adapty SDK。
现在无需使用额外的配置文件,您可以在激活时直接提供所有必要参数。
您只需配置一次 Adapty SDK,通常在应用程序生命周期开始时进行。
激活 Adapty SDK 的 Adapty 模块
-
按如下方式从应用中移除 AdaptyUI SDK 的导入:
import 'package:adapty_flutter/adapty_flutter.dart'; - import 'package:adapty_ui_flutter/adapty_ui_flutter.dart'; -
按如下方式更新 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 会记录错误及其他关键信息,帮助您了解应用的运行状况。可用的日志级别如下:
|
| withObserverMode | 可选 | 一个布尔值,用于控制观察者模式。如果您自行处理购买和订阅状态,并使用 Adapty 发送订阅事件和分析数据,请将其开启。 默认值为 🚧 在观察者模式下,Adapty SDK 不会关闭任何交易,请确保您自行处理。 |
| withCustomerUserId | 可选 | 您系统中的用户标识符。我们会在订阅和分析事件中发送该标识符,以便将事件归因到正确的用户画像。您也可以在 Profiles and Segments 菜单中通过 customerUserId 查找用户。 |
| withIdfaCollectionDisabled | 可选 | 设为 以及用户 IP 地址的共享。 默认值为 有关 IDFA 收集的更多详情,请参阅分析集成部分。 |
| withIpAddressCollectionDisabled | 可选 | 设为 默认值为 |
激活 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 表示不限制。 |