跳到主要内容
版本:v7

UE

更新插件与配置

  1. 将当前工程中已接入的 UE 插件列表提供给平台同事,获取 v7 对应交付包。
  2. 用新版插件替换项目 Plugins/ 目录中的旧版 XDSDK 插件。
  3. Config/DefaultXDGConfig.ini 中的旧格式配置项更新为 v7 格式(详见下方"配置变更"章节)。

模块 / 插件变更

  • TapBootstrap 依赖已从所有 XDSDK 模块中移除。如果游戏自身 Build.cs 中直接依赖了 TapBootstrap,请一并移除。

配置变更

枚举类型重命名

v6v7
FXDGPackageTypeEXDGPackageType

DisplayName 变更(影响 INI 值)

枚举成员名(如 PackageType_Default)在 v7 中保持不变,但 UMETA(DisplayName) 全部去掉了 PackageType_ 前缀。由于 DefaultXDGConfig.ini 存储的是 DisplayName,因此 INI 中的旧值需要同步更新:

枚举成员v6 DisplayName(INI 旧值)v7 DisplayName(INI 新值)
PackageType_DefaultPackageType_DefaultDefault
PackageType_AppStorePackageType_AppStoreiOS-AppStore
PackageType_Android_NormalPackageType_Android_NormalAndroid-Normal
PackageType_GooglePlayPackageType_Android_GooglePlayAndroid-GooglePlay
PackageType_PC_NormalPackageType_PC_NormalPC-Normal
PackageType_PC_SteamPackageType_PC_SteamPC-Steam
PackageType_PC_TapTapPackageType_PC_TapTapPC-TapTap
PackageType_PC_EPICPackageType_PC_EPICPC-EPIC

已移除的枚举成员

枚举成员说明
PackageType_Android_TapTapv7 中不再存在
PackageType_Android_TapIOv7 中不再存在

新增配置项

配置项说明
customer_disable是否禁用内置客服
bDisableWebPreload是否禁用 Web 预加载
AntiAddictionConfig防沉迷配置

基础模块(XDGCommon)

移除的 API

v6 接口替代方案
FXDGCommon::InitSDK(Callback) (无参版本)必须使用 InitSDK(FXDGInitParams, Callback)
FXDGCommon::Report(ServerId, RoleId, RoleName)FXDGAccount::OpenCustomerService(...)
FXDGCommon::GetAgreementList()已删除
FXDGCommon::ShowDetailAgreement(Url)已删除,协议场景可改用 FXDGCommon::OpenWebPage(Url, ...)
FXDGCommon::GetSDKVersionName()XDGCommon_UE_VERSION
FXDGCommon::TrackAchievement()FXDGCommon::TrackEvent(...)
FXDGCommon::EventCompletedTutorial()FXDGCommon::TrackEvent(...)
FXDGCommon::EventCreateRole()FXDGCommon::TrackEvent(...)
FXDGCommon::GetRegionInfo(Success, Fail)查询 IP 信息接口
FXDGCommon::ValidateWithCaptcha(Scene, Callback)已删除,如有需求请联系平台同事

签名变更

v6v7说明
TrackRole(ServerId, RoleId, RoleName, Level)TrackRole(const FXDGRoleInfo& RoleInfo)4 个独立参数合并为结构体
StoreReview()StoreReview(const FXDGRoleInfo& RoleInfo)新增必传角色信息

重命名

v6v7
OpenWebView(Url, Callback)OpenWebPage(Url, Callback)
Preload(FString& Url)PreloadWebPage(const FString& Url)

新增类型

FXDGRoleInfo 结构体:

USTRUCT(BlueprintType)
struct FXDGRoleInfo {
FString ServerId;
FString RoleId;
FString RoleName;
int32 RoleLevel = 0;
FString GameVersion;
FString Extra;
};

v7 中 TrackRoleStoreReviewOpenUserCenterOpenUserDashboardOpenCustomerService 等多个接口统一使用该结构体传递角色信息。


账户模块(XDGAccount)

移除的 API

v6 接口替代方案
FXDGAccount::Login(TArray<EXDGLoginType>, Success, Fail)FXDGAccount::LoginByType(...)
FXDGAccount::IsTokenActiveWithType(Type)已删除

重命名

v6v7
FXDGAccount::GetUser()FXDGAccount::GetCurrentUser()
FXDGAccount::AccountCancellation()FXDGAccount::OpenAccountDeletion()

签名变更

v6v7说明
OpenUserCenter(bool bShowLogoutButton = true)OpenUserCenter(const FXDGRoleInfo* RoleInfo = nullptr)参数从退出按钮开关改为角色信息指针
OpenUserDashboard(const FDashboardRoleInfo& Info)OpenUserDashboard(const FXDGRoleInfo& RoleInfo)FDashboardRoleInfo 已移除,统一使用 FXDGRoleInfo

枚举值变更

EUserStateChangeCode 数值全部变更:

v6v7
UserLogout = 0x9001UserLogout = 0
UserBindSuccess = 0x1001UserBindSuccess = 1
UserUnBindSuccess = 0x1002UserUnBindSuccess = 2
ProtocolAgreedAfterLogout = 0x2001ProtocolAgreedAfterLogout = 3
SupportNoUnRead = 4(新增)
SupportHasUnRead = 5(新增)
注意

如果游戏侧使用了裸数值比较(如 if (code == 0x9001)),必须更新为新值。建议统一使用枚举名。

新增 API

接口说明
AddUserStatusChangeCallback(Callback)注册用户状态变化回调
OpenCustomerService(RoleInfo, Path, Params)内置客服(替代 FXDGCommon::Report

支付模块(XDGPayment)

头文件变更

v6 中 XDGOrderInfo.hXDGProductInfo.hXDGTransactionInfo.hXDGPayDetailsParams.h 等独立头文件在 v7 中不再存在。FXDGOrderInfoFXDGProductInfo 等保留类型已集中到 XDGPaymentTypes.hFXDGTransactionInfoFXDGPayDetailsParams 已被移除,对应功能由 FXDGPendingPurchaseFXDGPaymentParams 替代。

移除的 API

v6 接口替代方案
PayWithProduct(OrderId, ProductId, RoleId, ServerId, Ext, ...)PayWithParams(...)
PayWithWeb(ServerId, RoleId, ProductId, ...)PayWithParams(...)
QueryProductList(ProductIds, Success, Error)QueryWithProductIds(...)
RestorePurchase(TransactionInfo, OrderId, ...)HandlePendingPurchase(...)
CheckRefundStatus(Callback, Error)已删除
CheckRefundStatusWithUI(Callback, Error)已删除
Pay(FXDGPayDetailsParams&, FPayResultCodeDelegate)PayWithParams(...)
Pay(EXDGPayType, FXDGPayDetailsParams&, FPayResultCodeDelegate)PayWithParams(...)

签名变更

v6v7说明
PayWithParams(Params, FXdgDelegate<FXDGOrderInfo>)PayWithParams(Params, FXDGOrderInfo::FDelegate, FXDGError::FDelegate)回调从统一回调拆分为成功+失败
QueryRestoredPurchases(FXDGTransactionInfo::FArrayDelegate)QueryRestoredPurchases(FXDGPendingPurchase::FDelegate, FXDGError::FDelegate)返回类型和回调模式都变了

类型变更

v6v7说明
FXdgPaymentParamsFXDGPaymentParams结构体重命名
FXdgPaymentParams::ExtFXDGPaymentParams::Extra字段重命名
FXDGTransactionInfoFXDGPendingPurchase替代(含 PurchaseToken + ProductId)
FXDGPayDetailsParamsFXDGPaymentParams替代
FXDGProductInfo(含多个子类型)FXDGProductInfo(仅 ProductId + DisplayPrice)字段大幅简化
FXDGOrderInfo::OrderIdFXDGOrderInfo::GameOrderId字段重命名

分享模块(XDGSharing)

公开 API 无 breaking changes。


推送模块(XDGPush)

公开 API 无 breaking changes。


公告模块(XDGAnnouncement)

无 breaking changes。新增以下接口:

接口说明
FXDGAnnouncementManager::OpenAnnouncementPage(Config, Callback)打开公告页面
FXDGAnnouncementManager::RequestAnnouncementUnread(Config, Callback)查询未读公告

举报模块(XDGReport)

公开 API 无 breaking changes。


TapSDK 封装模块(XDGTapSDK)

v6 无公开头文件。v7 新增 FXDGTap 类,包含以下能力:

  • 动态(Moment):MomentOpenMomentCloseMomentPublish
  • 许可证:RegisterLicenseCallbackCheckLicense
  • DLC:RegisterDLCCallbackQueryDLCPurchaseDLC
  • 更新:UpdateGameCheckForceUpdate
  • 评价:OpenReview

迁移速查表

按优先级排列,最常见的需要游戏侧修改的项目:

必须修改

  1. InitSDK 无参版本已移除 — 改用带 FXDGInitParams 的版本,设置正确的包体类型
  2. FXDGPackageTypeEXDGPackageType — 枚举类型名变更
  3. INI 中 DisplayName 旧值(如 PackageType_Default)需更新为新值(如 Default
  4. TrackRole 签名 — 4 个参数改为 FXDGRoleInfo 结构体
  5. GetUser()GetCurrentUser() — 方法名变更
  6. AccountCancellation()OpenAccountDeletion() — 方法名变更
  7. OpenWebViewOpenWebPage — 方法名变更
  8. PreloadPreloadWebPage — 方法名变更
  9. FXdgPaymentParamsFXDGPaymentParams — 结构体名变更
  10. ExtExtra — 支付参数字段名变更
  11. PayWithParams 回调拆分 — 从单回调改为成功+失败双回调
  12. EUserStateChangeCode 枚举值 — 数值从十六进制改为顺序整数
  13. FDashboardRoleInfoFXDGRoleInfo — 类型替换
  14. FXDGOrderInfo::OrderIdGameOrderId — 字段名变更

需要检查是否在用

  1. Report(ServerId, RoleId, RoleName) — 改用 FXDGAccount::OpenCustomerService()
  2. StoreReview() — 新增必传 FXDGRoleInfo 参数
  3. OpenUserCenter(bool) — 参数改为 FXDGRoleInfo*
  4. PayWithProduct / PayWithWeb / Pay — 统一使用 PayWithParams
  5. QueryRestoredPurchases / RestorePurchase — 回调类型和参数全部变更
  6. CheckRefundStatus / CheckRefundStatusWithUI — 已移除
  7. GetRegionInfo — 已移除,改用 IP 查询接口
  8. GetSDKVersionName — 已移除,改用 XDGCommon_UE_VERSION
  9. IsTokenActiveWithType — 已移除
  10. Login(TArray<EXDGLoginType>) — UI 登录已移除,改用 LoginByType
  11. TapBootstrap 依赖 — .Build.cs.uproject 中需移除