UE
更新插件与配置
- 将当前工程中已接入的 UE 插件列表提供给平台同事,获取 v7 对应交付包。
- 用新版插件替换项目
Plugins/目录中的旧版 XDSDK 插件。 - 将
Config/DefaultXDGConfig.ini中的旧格式配置项更新为 v7 格式(详见下方"配置变更"章节)。
模块 / 插件变更
TapBootstrap依赖已从所有 XDSDK 模块中移除。如果游戏自身Build.cs中直接依赖了TapBootstrap,请一并移除。
配置变更
枚举类型重命名
| v6 | v7 |
|---|---|
FXDGPackageType | EXDGPackageType |
DisplayName 变更(影响 INI 值)
枚举成员名(如 PackageType_Default)在 v7 中保持不变,但 UMETA(DisplayName) 全部去掉了 PackageType_ 前缀。由于 DefaultXDGConfig.ini 存储的是 DisplayName,因此 INI 中的旧值需要同步更新:
| 枚举成员 | v6 DisplayName(INI 旧值) | v7 DisplayName(INI 新值) |
|---|---|---|
PackageType_Default | PackageType_Default | Default |
PackageType_AppStore | PackageType_AppStore | iOS-AppStore |
PackageType_Android_Normal | PackageType_Android_Normal | Android-Normal |
PackageType_GooglePlay | PackageType_Android_GooglePlay | Android-GooglePlay |
PackageType_PC_Normal | PackageType_PC_Normal | PC-Normal |
PackageType_PC_Steam | PackageType_PC_Steam | PC-Steam |
PackageType_PC_TapTap | PackageType_PC_TapTap | PC-TapTap |
PackageType_PC_EPIC | PackageType_PC_EPIC | PC-EPIC |
已移除的枚举成员
| 枚举成员 | 说明 |
|---|---|
PackageType_Android_TapTap | v7 中不再存在 |
PackageType_Android_TapIO | v7 中不再存在 |
新增配置项
| 配置项 | 说明 |
|---|---|
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) | 已删除,如有需求请联系平台同事 |
签名变更
| v6 | v7 | 说明 |
|---|---|---|
TrackRole(ServerId, RoleId, RoleName, Level) | TrackRole(const FXDGRoleInfo& RoleInfo) | 4 个独立参数合并为结构体 |
StoreReview() | StoreReview(const FXDGRoleInfo& RoleInfo) | 新增必传角色信息 |
重命名
| v6 | v7 |
|---|---|
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 中 TrackRole、StoreReview、OpenUserCenter、OpenUserDashboard、OpenCustomerService 等多个接口统一使用该结构体传递角色信息。
账户模块(XDGAccount)
移除的 API
| v6 接口 | 替代方案 |
|---|---|
FXDGAccount::Login(TArray<EXDGLoginType>, Success, Fail) | FXDGAccount::LoginByType(...) |
FXDGAccount::IsTokenActiveWithType(Type) | 已删除 |
重命名
| v6 | v7 |
|---|---|
FXDGAccount::GetUser() | FXDGAccount::GetCurrentUser() |
FXDGAccount::AccountCancellation() | FXDGAccount::OpenAccountDeletion() |
签名变更
| v6 | v7 | 说明 |
|---|---|---|
OpenUserCenter(bool bShowLogoutButton = true) | OpenUserCenter(const FXDGRoleInfo* RoleInfo = nullptr) | 参数从退出按钮开关改为角色信息指针 |
OpenUserDashboard(const FDashboardRoleInfo& Info) | OpenUserDashboard(const FXDGRoleInfo& RoleInfo) | FDashboardRoleInfo 已移除,统一使用 FXDGRoleInfo |
枚举值变更
EUserStateChangeCode 数值全部变更:
| v6 | v7 |
|---|---|
UserLogout = 0x9001 | UserLogout = 0 |
UserBindSuccess = 0x1001 | UserBindSuccess = 1 |
UserUnBindSuccess = 0x1002 | UserUnBindSuccess = 2 |
ProtocolAgreedAfterLogout = 0x2001 | ProtocolAgreedAfterLogout = 3 |
| — | SupportNoUnRead = 4(新增) |
| — | SupportHasUnRead = 5(新增) |
如果游戏侧使用了裸数值比较(如 if (code == 0x9001)),必须更新为新值。建议统一使用枚举名。
新增 API
| 接口 | 说明 |
|---|---|
AddUserStatusChangeCallback(Callback) | 注册用户状态变化回调 |
OpenCustomerService(RoleInfo, Path, Params) | 内置客服(替代 FXDGCommon::Report) |
支付模块(XDGPayment)
头文件变更
v6 中 XDGOrderInfo.h、XDGProductInfo.h、XDGTransactionInfo.h、XDGPayDetailsParams.h 等独立头文件在 v7 中不再存在。FXDGOrderInfo、FXDGProductInfo 等保留类型已集中到 XDGPaymentTypes.h;FXDGTransactionInfo、FXDGPayDetailsParams 已被移除,对应功能由 FXDGPendingPurchase 和 FXDGPaymentParams 替代。
移除的 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(...) |
签名变更
| v6 | v7 | 说明 |
|---|---|---|
PayWithParams(Params, FXdgDelegate<FXDGOrderInfo>) | PayWithParams(Params, FXDGOrderInfo::FDelegate, FXDGError::FDelegate) | 回调从统一回调拆分为成功+失败 |
QueryRestoredPurchases(FXDGTransactionInfo::FArrayDelegate) | QueryRestoredPurchases(FXDGPendingPurchase::FDelegate, FXDGError::FDelegate) | 返回类型和回调模式都变了 |
类型变更
| v6 | v7 | 说明 |
|---|---|---|
FXdgPaymentParams | FXDGPaymentParams | 结构体重命名 |
FXdgPaymentParams::Ext | FXDGPaymentParams::Extra | 字段重命名 |
FXDGTransactionInfo | FXDGPendingPurchase | 替代(含 PurchaseToken + ProductId) |
FXDGPayDetailsParams | FXDGPaymentParams | 替代 |
FXDGProductInfo(含多个子类型) | FXDGProductInfo(仅 ProductId + DisplayPrice) | 字段大幅简化 |
FXDGOrderInfo::OrderId | FXDGOrderInfo::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):
MomentOpen、MomentClose、MomentPublish等 - 许可证:
RegisterLicenseCallback、CheckLicense - DLC:
RegisterDLCCallback、QueryDLC、PurchaseDLC - 更新:
UpdateGame、CheckForceUpdate - 评价:
OpenReview
迁移速查表
按优先级排列,最常见的需要游戏侧修改的项目:
必须修改
InitSDK无参版本已移除 — 改用带FXDGInitParams的版本,设置正确的包体类型FXDGPackageType→EXDGPackageType— 枚举类型名变更- INI 中 DisplayName 旧值(如
PackageType_Default)需更新为新值(如Default) TrackRole签名 — 4 个参数改为FXDGRoleInfo结构体GetUser()→GetCurrentUser()— 方法名变更AccountCancellation()→OpenAccountDeletion()— 方法名变更OpenWebView→OpenWebPage— 方法名变更Preload→PreloadWebPage— 方法名变更FXdgPaymentParams→FXDGPaymentParams— 结构体名变更Ext→Extra— 支付参数字段名变更PayWithParams回调拆分 — 从单回调改为成功+失败双回调EUserStateChangeCode枚举值 — 数值从十六进制改为顺序整数FDashboardRoleInfo→FXDGRoleInfo— 类型替换FXDGOrderInfo::OrderId→GameOrderId— 字段名变更
需要检查是否在用
Report(ServerId, RoleId, RoleName)— 改用FXDGAccount::OpenCustomerService()StoreReview()— 新增必传FXDGRoleInfo参数OpenUserCenter(bool)— 参数改为FXDGRoleInfo*PayWithProduct/PayWithWeb/Pay— 统一使用PayWithParamsQueryRestoredPurchases/RestorePurchase— 回调类型和参数全部变更CheckRefundStatus/CheckRefundStatusWithUI— 已移除GetRegionInfo— 已移除,改用 IP 查询接口GetSDKVersionName— 已移除,改用XDGCommon_UE_VERSION宏IsTokenActiveWithType— 已移除Login(TArray<EXDGLoginType>)— UI 登录已移除,改用LoginByTypeTapBootstrap依赖 —.Build.cs和.uproject中需移除