升级指南
本指南旨在明确各个版本的更新内容和一些版本升级时需要游戏主动修改的内容。
6.24.0
一、【可选】UE 新增支持国内和海外的推送服务
如果您想接入推送服务,请参考 文档说明。
6.23.6
一、【必须】修复 Android 低版本兼容性问题
修复了 Android 7.1(API Level 25)及以下的设备无法初始化的问题。
6.23.5
一、【建议升级】UE 升级 TapSDK 3.29.5
修复了已知的一些问题,请参考 TapSDK 更新日志
6.23.4
一、【建议升级】Unity 升级 TapSDK 3.29.5
修复了已知的一些问题,请参考 TapSDK 更新日志
6.23.3
一、【必须】如果您正在使用 iOS 小红书分享,请升级当前版本
修复了 Unity 中写入 iOS 配置文件的一个错误,否则可能影响提审。
二、【建议升级】修复 Android 上已知的崩溃问题。
6.23.2
一、【必须】如果您正在使用微博分享,请升级当前版本
升级了微博 SDK,修复了微博分享在 iOS 18 中的兼容问题,之前的版本可能会导致分享失败。
6.23.0
一、【必须】如果接入了广告分包(ads),需要升级到 3.6.0+
iOS 中广告 SDK 和 TapSDK 新版本存在冲突,需要更新广告分包(ads) 到 3.6.0 或更新版本。
一、【可选】新增支持 Apple 和 Google 平台的商品批量购买
如果您需要接入该功能,请参考 文档 中新增的支付接口。
二、【可选】支持启用 TapTap 无感授权
在这个版本中,升级到了 TapSDK v3.29.4,游戏可以通过配置在国内 TapTap 登录时启用无感授权流程。详细请参考 文档说明
6.22.4
一、【建议升级】错误修复
该版本修复了 Android 端 TapTap 登录小概率会遇到闪退的问题。影响范围版本:6.22.2、6.22.3。
6.22.3(建议升级到 6.22.4)
一、【可选】个人信息页接口调整
该版本修改了个人信息页打开的接口,增加了角色相关的数据。接入参考
6.22.2(建议升级到 6.22.4)
一、【可选】TapTap 登录流程控制
该版本将 6.22.0 开始的国内 TapTap 后置授权改为可由服务端控制启用,默认还是以前的前置授权模式。接入该版本时请和我们联系确认是否开启后置授权模式。
二、【必看】已知问题的临时修复方案
在 Android 平台,需要在 AndroidManifest.xml 文件中添加如下配置以防止小概率的闪退问题,在 6.22.4 中已修复:
<activity
android:name="com.xd.intl.account.ui.TapTapSignInConfirmActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
6.22.1
一、【可选】Unity 新增支持海外手机号和邮箱登录
该版本支持了 Unity 移动端的海外手机号和邮箱登录。接入参考
6.22.0
一、【可选】海外新增支持手机号和邮箱的登录方式
新版本在海外新增支持了两个登录方式,使用方式和原本的其他登录一致,只需在登录时传入相应的登录类型即可。接入参考
二、【可选】国内新增支持打开玩家个人信息页面
【接口已更新,请更新到 6.22.3】国内新增支持打开玩家个人信息页面的 API,使用前请保证已经完成登录。接入参考
6.21.1
一、【必看】Unity SDK 接入调整
Unity SDK 从这个版本开始支持了新的基于 NPMJS 的接入方式,同时调整了 TapSDK 的 package name 和版本号定义,详细请参考 新的接入说明
二、【可选】新增支持 Apple 的商店兑换码
新版本支持了 Apple 商店渠道的兑换码订单(暂不支持 Google 商店)和掉单数据的查询和消费,接入请参考 应用外购买或掉单
三、【可选】iOS 支持字节跳动的巨量 SDK 的接入
如果需要在 iOS 客户端内接入并启用巨量 SDK,请升级 ADs 版本到 3.5.1。同时在 XDConfig.json 中增加如下内容,确保 ad_config-tt_config-ios_enable 的值为 true,原本的其他参数不需要改动,是 Android 包内使用的。
"ad_config": {
"tt_config": {
"ios_enable": true
}
}
6.21.0
一、【必看】适配 Android 14 & 升级谷歌结算库到 7.0.0 版本
- 针对 Google Play 对支付结算库的 强制升级的通知 ,SDK 在这个版本中将结算库 SDK 的版本从 5.2.0 升级到 7.0.0 版本;另外在极少数情况下,某些设备无法支持 ProductDetails 类型的交易,这通常是因为用户手机上的 Google Play 服务版本已过时,SDK 还针对该部分进行了兼容。游戏无需关心内部实现细节,升级改版本之后请参考 测试集成 进行支付测试验证。
- 针对 Google Play 对 目标 API 级别的要求,SDK 针对 Android 14(API Level 34) 的版本进行了内容上的适配。
除了以上 SDK 对 Android 14 的适配之外,当游戏升级 targetSdkVersion 为 34 的时候,请仔细阅读 Android 14 的 行为变更、所有应用影响 文档对游戏应用进行 Android 14 应用的适配。
6.20.2
一、【建议升级】错误修复
修复了 Android 海外版本 Google 支付流程结束 Loading 未正常消失的问题。
6.20.1
一、【可选】指定显示韩国协议
这个版本优化了韩国区域协议展示形式,如果需要指定显示韩国协议请调用相应接口。
6.19.2
一、【可选】Unity 依赖优化
这个版本仅针对 Unity-Android 平台的 Payment 模块中添加的依赖项进行了国内和海外的区分在构建包时排除掉不必要的依赖。升级不需要游戏额外处理其它内容。
6.20.0
一、【可选】分享模块新增 TapTap 支持和微博超话支持
这个版本新增了 TapTap 国内版分享以及微博支持设置超话的参数,其中超话需要和微博官方进行申请,有需要请联系平台同事。接入文档参考。
6.19.1
一、【建议升级】错误修复
这个版本主要是适配了 Twitter 新的分享 API,修复了 iOS 上分享会失败的问题。同时修改了韩文下拒绝的文案。升级不需要游戏处理任何东西。
6.19.0
一、【可选】新增举报模块
在引擎 SDK 中,我们新增了举报模块。接入文档参考。如果您在接入 iOS 、Android SDK 时需要举报功能请联系我们。[
二、【必看】UE SDK 调整参数配置方式
概述:删除 FXULocalConfig
,FXDGConfig
;废弃 UXDConfig
。使用新的 UXDGConfig
- 添加旧配置转化的命令行工具
UXDConfigConverterCommandlet
(无参数),读取旧配置文件(Config/DefaultXDConfig.ini )生成新配置文件(Config/DefaultXDGConfig.ini) - 删除
FXDGSettings::EditConfig
回调,新的配置方式不再需要这个回调。PC初始化之前GetMutableDefault<UXDGConfig>()->GameVersion = TEXT("NewVersion");
即可设置 - 初始化时 PC 平台根据
UGeneralProjectSettings::ProjectVersion
字段设置UXDGConfig::GameVersion
(等同于之前的FXDGConfig::GameVersion
) - 更详细的运作方式可以查看代码中
UXDGConfig
的注释
6.17.3
一、广告上报逻辑优化
这个版本仅对 Android 上广告包的上报事件逻辑进行了优化。如果是 Unity SDK,请确保同时使用了广告包分包模块的 3.4.0 版本。
二、分享支持缩略图
新版本分享中 QQ 和微信分享链接时支持添加缩略图(建议不超过 64k),文档参考。
6.17.2
这个版本仅 Android 平台,因头条 SDK 的分包渠道的付费事件通过服务端上报,但广告渠道要求 purchase 事件必须通过预定义的埋点事件上报,不再支持服务端上报。估内部增加了广告渠道国内支付的「付费事件」的埋点上报。游戏升级无需其他操作,正常更新 SDK 版本即可,请注意,6.17.2 的版本搭配广告包分包模块的 3.4.0 版本 ,升级时注意版本的匹配即可。
6.18.0
一、Unity & UE SDK 新增公告模块,支持获取当前生效的公告
二、移动端升级 Twitter 的品牌资源为 X 的品牌
满足运营需要,升级 Twitter 的品牌资源素材为 X 的素材
6.17.1
一、Unity 移动端和电脑端关于内建账户的处理变化
这个版本开始 Unity SDK 中收到登录成功的回调时如果游戏需要获取 TDSUser(LCUser) 的话,可能会出现为空的情况,同理这个时候游戏服务端想要获取内建账户服务端的数据时也可能没办法查询到相同 XDID 的内建账户数据。这个只会在 XDSDK 服务器和 TDS(LeanCloud)服务器之间的通讯有问题时才会发生,本身是个小概率事件,以前遇到这种情况时,SDK 会直接返回登录失败,改变之后 XDSDK 账户登录流程的成功率能得到更稳定的保障。如果游戏必须使用和内建账户相关的功能,则需要自行处理相关逻辑,让玩家重新进行登录才会再次触发 XDSDK 创建内建账户的流程。
二、国内登录流程增加补款验证
国内登录流程中增加补款的检查流程,该功能为白名单模式,不影响现有已接入的游戏,需要使用补款拦截的游戏请联系我们开启
三、国内 Android 支付体验优化
国内 Android 支付时如果本机未安装微信或支付宝时会提示使用扫码支付,优化用户体验
四、国内 Android OAID 升级
SDK 中默认标配的 OAID SDK 升级到 v2.4.0 的当前最新版本,满足市场投放需求,如果遇到打包问题,请参考各平台的接入文档 说明
五、海外 iOS AppsFlyer 卸载衡量配置
在 6.17.0 的版本中,iOS 对三方 SDK 进行了一次再封装,会导致原来的 AppsFlyer SDK 代码无法使用,如果遇到该问题,请替换成下面的代码:
#import <XDAppsFlyerWrapperSDK/XDAppsFlyerWrapperSDK.h>
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[XDGAppsFlyerWrapper registerUninstall:deviceToken];
}
6.17.0
配置过阿里云手机号一键登录参数的游戏务必找我们重新生成配置,不然升级后将无法使用
一、统一分享模块
移动端整合了原来的国内和海外分享,提供了新的模块和接口,并新增了小红书和抖音的分享支持,文档 ,原有接口不影响
二、阿里云一键登录升级
升级了阿里云 SDK 以解决联通用户在 2024 年 3 月 31 日后无法继续使用手机号一键登录的问题,已接入的游戏需要重新生成对应的配置并更新 XDConfig 文件
三、海外登录流程增加补款验证
海外登录流程中增加补款的检查流程,该功能为白名单模式,不影响现有已接入的游戏,需要使用补款拦截的游戏请联系我们开启
6.16.0
该版本依赖 TapSDK v3.28.0
- PC端添加了手柄操作适配,手柄接入请参考手柄适配
- PC端
FXDGAccount::OpenUserCenter
接口增加bShowLogoutButton
参数,表示用户中心是否显示退出登录按钮,默认值为true(true时和原有逻辑一样,没有隐藏需要的话可以不管)
6.15.0
该版本依赖 TapSDK v3.27.0
该版本中进行了一些新功能的增加以及其他一些优化,您可无需进行配置项的更改。以下内容需要注意一下:
- Android 国内网页支付新增了对进行了 TapTap 云玩和 TapTap 沙盒环境下运行的支持。
- TapTap 云玩环境下的分享是不可用的,SDK 内对于微信、 QQ 、微博的分享进行了分享的限制,会直接返回失败。
- Unity 中对日志输出做了优化,默认不输出过多日志,有需要请按 文档 操作。
6.13.4
该版本中我们升级了海外 Facebook SDK 的版本号以满足官方的要求,为此,您需要更新游戏的 XDConfig.json 文件,补充 Facebook 节点,增加 client_token 的内容。举例如下:
"facebook":{
"app_id": "8929xxxxxxx32077",
"client_token": "82d58c9xxxxxxxxxxxxxxxd73c8b91",
"permissions":[
"public_profile",
"user_friends",
"email"
]
}
对于 Android 端,请将 Facebook SDK 依赖版本升级至 15.2.0,请在项目级别的 build.gradle
文件中更新 Facebook SDK 版本依赖:
// 基础组件
implementation "com.facebook.android:facebook-core:15.2.0"
// 登录
implementation "com.facebook.android:facebook-login:15.2.0"
// 分享
implementation "com.facebook.android:facebook-share:15.2.0"
6.14.0
Unity 和 Unreal 的 PC 平台支持 Facebook 账号授权登录。沿用现有接口,Type 为 Facebook
Facebook 接入文档
6.13.0
- 该版本依赖 iOS 3.22.0 / Android 3.22.1 / Unity 3.22.2(含)/ Unreal 3.23.0 以上版本的 TapSDK :::
这个版本中,我们优化了国内 TapTap 登录流程的体验,将授权点前置到 XDSDK 中,为了保证体验的一致性,请您接入这个版本的时候告知我们,我们将核对各个环节都是正确的。
在授权前置的流程里,SDK 会显示应用名称,我们默认会取用应用配置来显示,但如果您想自定义该名称,可以在 XDConfig.json
中修改 game_name
,参考 模板。
此外,更新到此版本时,麻烦检查一下 XDConfig.json 文件中 tapsdk 的 permissions 配置,在国内请不要添加 email
的权限,在海外请不要添加 phone
的权限。
6.12.2
该版本主要在 6.12.1 的版本基础上修复了 Android 原生上上报 Adjust 事件到沙盒环境问题,内部更新,无其他需要特别关心的地方。
6.12.1
该版本主要是满足 RO 韩服和日服的一些运营需求。
6.12.0
该版本不支持已经开通过国内手机号登录的游戏升级。
该版本依赖 iOS 3.19.2 / Android 3.19.3 / Unity 3.19.2 / UE4 3.20.2 (含)以上版本的 TapSDK :::
一、国内新游戏手机号一键登录的开通
国内已经开通过手机号登录的游戏请不要升级到这个版本,后续版本会有另外的支持。对于新游戏,我们将移动端手机号一键登录的能力对接到了没有 TapTap 客户端时网页 Tap 登录的流程中,请联系我们开通相关参数,开通指南 ,并将参数配置在 XDConfig.json 的 aliyun 节点中。
二、支持 Steam 支付
这个版本中我们支持了 PC 上的 Steam 支付。配置请参考 Unity & UE, 使用方式和您使用 Apple / Google Pay 是同一个接口,请参考 支付文档。
6.11.0
一、Android Google 结算库版本升级至 5.2.0
& SDK 适配 Android 13(Api Level 33)版本
为应对 Google Play 上架政策需求,Google Play 结算库 v4 版本已废弃 以及符合 Google Play 的目标 API 级别要求,SDK 在 6.11.0 的版本中对这两个要求进行了适配。
- 符合 Google Play 的目标 API 级别要求(适配 Android 13)
这部分适配如使用了SDK 推送或自主接入的其他推送的功能,游戏需要增加推送通知的权限,并在适当的时机请求运行时权限,详情可参考 Google 通知运行时权限的官方文档:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
到此 SDK 受影响的内容已完毕。除此之外,游戏需要关注其他关于 Android 13 行为变更 的内容进行适配,避免影响游戏的正常体验。
- Android Google 结算库版本升级至
5.2.0
从 Google 结算库版本更新说明中,从 v4 版本升级到 v5 版本是一个大版本的更新,从稳定性来说对整个 SDK 上已支持的 Google 支付流程上没重大变动,但内部的 API 变化较大:- Android 原生移除了
TDSGlobalSkuDetails
类,转而用GoogleProductDetails
替代,其中GoogleOneTimePurchaseOfferDetails
代表一次性购买的商品数据结构,详情可参考 Google 的 ProductDetails.OneTimePurchaseOfferDetails - Android 原生变更了
XDGPayment.queryWithProductIds()
的参数类型,详情可参考开发指南-查询商品信息 - Unity 上宏定义
UNITY_ANDROID
下的SkuDetailsBean
数据结构依据 Android 原生上的变动调整了数据结构的定义,可参考 Android 原生商品数据结构定义使用 - UE 上宏定义
PLATFORM_ANDROID
下的FXDGProductInfo
类针对 Android 部分的属性变更了商品信息数据结构的定义,可参考 Android 原生商品数据结构定义使用
- Android 原生移除了
6.10.4
一、AppsFlyer 的配置拆分
我们将 XDConfig.json 中 AppsFlyer 里原来的 dev_key
拆分成 dev_key_ios
和 dev_key_android
以方便新游戏在不同平台不同配置的需求。
当然如果不做修改,继续使用 dev_key
的话我们也能正确读取配置,只是会优先取用 dev_key_ios
和 dev_key_android
的值。
二、AppsFlyer 的卸载衡量
AppsFlyer 的卸载衡量是投放侧的需求,每个游戏不同,如果投放要求您添加相关代码,请参考官方文档 和如下说明进行操作:
在 Android 中,我们加上了对 AppsFlyer 的卸载衡量的必须代码。您无需再继承我们的类去添加相应的代码。
在 iOS 中,相应的代码并不在 SDK
范围内,所以还需要游戏自行接入,但您无需再主动调用 [[UIApplication sharedApplication] registerForRemoteNotifications];
只需要添加 AppDelegate
中的回调即可
#import <AppsFlyerLib/AppsFlyerLib.h>
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[[AppsFlyerLib shared] registerUninstall:deviceToken];
}
三、Android SDK 对返回键的兼容
我们在这个版本里补充了 SDK 内置页面对 Android 返回键的响应逻辑,以满足 Google 推荐的一些硬性要求。
6.10.2 和 6.10.3
如果您需要使用 TapSDK 3.19.0 (含)以上的版本时,请将 XDSDK 的版本升级到 6.10.3 (含)以上
6.10.1
一、Unreal 配置升级
这个版本 Unreal 的插件配置做了升级,需要更改一下,具体参考这里。 如果接入了 Steam 平台登录,Steam 平台登录的开启也放在了这次的配置项里了,具体看这里
二、其他
其他的话,我们主要针对的对部分场景的连点误触做了优化,以及 iOS 和 Android 对部分海外第三方 SDK 的版本做了升级,没有游戏需要修改的事项。
另外针对 Android 平台,新增了针对国内环境的支付宝、微信的原生支付。 XDConfig.json 中无需新增支付宝的配置,微信的配置与分享的配置一致,确保文件中有 wechat -> app_id 的配置 即可。 在应用的 AndroidManifest.xml 文件中添加如下配置,请将 {应用包名} 替换为游戏正确包名,否则无法收到微信支付回调:
<activity-alias
android:name="{应用包名}.wxapi.WXPayEntryActivity"
android:exported="true"
android:targetActivity="com.xd.intl.payment.impl.wechatpay.WXPayEntryActivity"/>
6.10.0
一、UE 合并移动和 PC 接口
这个版本中 UE SDK 做了一次全面的接口升级,将移动端和 PC 端的调用接口做了一次统一的封装,如果您从老版本升级上来的话,请联系我们工程师获得详细的升级指导。
二、国内分享图片新增接口支持直接传入图片的二进制数据
请参考 接口文档
6.9.2
这个版本里我们在移动端支持了 trackEvent 携带参数的 API,海外可以上报给多个埋点平台,除此之外没有游戏需要特别关心的事项,可无缝升级。
6.9.1
这个版本里我们只是修复了一些 6.9.0 里遗留的埋点和一些 UI 问题,没有游戏需要关心的事项,可无缝升级。
6.9.0
一、国内支持手机号登录
我们在国内版本里支持了国内手机号码的登录,移动端同时支持运营商的一键登录和短信验证码登录,PC 端则只支持短信验证码登录,一键登录需要开通第三方平台配置,具体流程请参考 开通手机号登录 ,开通后,需要将一键登录的相关配置填写在 XDConfig.json 的 aliyun 节点中。使用时只需在 LoginByType 接口使用手机号登录对应的枚举 Type 即可,SDK 会处理相关的 UI 和业务逻辑,和您接入其他登录的流程是一样的。
对于 Android 平台,在使用手机号「一键登录」功能时需要注意一些配置,详情请参见手机号码「一键登录」配置相关
如果您同时使用了 TapTap 登录和手机号登录,为了保证用户在使用手机号 A 注册的 TapTap 账号和直接使用手机号 A 来登录 XDSDK 时能获得同一个用户 ID,请您在 XDConfig.json 的 tapsdk.permissions 节点中增加 phone 的权限,这样在使用 TapTap 登录时,用户可以授权 XDSDK 来获取绑定的手机号码。
二、国内支持微信、QQ、微博的图文分享
我们在国内版本里支持了微信、QQ、微博三大平台的图片和文字的分享,该功能需要开通第三方平台配置,具体流程请联系 XDSDK 项管。
三、国内支持第三方广告 SDK 和渠道打包
我们在国内版本力支持了第三方广告 SDK 的接入和对应的渠道包分包功能,具体请参考 分包/广告包。
四、 Unity 合并移动和 PC 版本
这个版本我们统一了 Unity PC 和 Unity Mobile 的接口,实现了一套接口即可全平台(PC & Mobile)使用。需要做一些项目调整:
更新 XDConfig 位置
- 从 6.9.0 开始 XDConfig.json 各个平台(Android、iOS)从 /Assets/Plugins (PC 平台在 /Assets/Resources )中,改至 /Assets 中,并且出包后,会直接拷贝到包中的 Application.streamingAssetsPath 下面
更新判断 Google 相关依赖库的判断方式
- XDSDK Unity 以 XDConfig.json 是否存在 google 配置,作为判断是否会在打安卓包时添加 Google 相关依赖库的依据,之前是根据是否存在 google-services.json
在项目文件中新增依赖(Packages/manifest.json)
- UPM 方式,公网使用,需要能正常访问 Github 的环境
" com.tapsdk.androiddependencyresolver": "https://github.com/luckisnow/android_dependency_resolver.git#${sdkVersions.taptap.adr}"
- NPM 方式,在心动内网下可使用
"com.tapsdk.androiddependencyresolver": ${sdkVersions.taptap.adr}
升级 Gradle
- 同时,指定 Android Gradle Plugins 版本至 4.0.1,Unity 2021.1.16 之前的版本都需要手动升级 Gradle 版本
。为了将 Gradle 版本和 Android Gradle Plugin 版本对应
,需要更新 Gradle 版本,下载 6.1.1 版本的 Gradle
,解压后放到自定义的文件夹中,同时不勾选 Unity
中的
Preferences
->External Tools
->Android
->Gradle Installed with Unity(recommend)
,改为选择解压后 Gradle 文件夹的位置,如 <some path>/gradle-6.1.1。
6.8.3
这个版本我们支持老的海外 1.x SDK 升级到 6.x 的版本。
二、更新判断 Google 相关依赖库的判断方式
- XDSDK Unity 以 XDConfig.json 是否存在 google 配置,作为判断是否会在打安卓包时添加 Google 相关依赖库的依据,之前是根据是否存在 google-services.json
6.8.2
一、用户退出登录后在协议弹窗内点击同意有回调
如果您的游戏需要知道退出登录后再协议弹窗内点击同意的回调,可以在 用户状态回调 中识别新增的 0x2001 code。
6.8.1
一、优化横版 UI,支持竖版 UI
如果您是竖屏游戏,那么这是个好消息,我们正式支持了竖屏的 SDK UI,包含协议、用户中心、客服和注销等页面。您不需要做任何适配,只需升级到该版本即可。
二、海外邮箱冲突相关的 UI 由 SDK 处理
在 6.5.0 里我们新增了一套对邮箱的校验机制 来防止用户在多个绑定了同一邮箱的平台账号授权后生成不同账号的问题,当时我们推荐游戏自行根据登录时的错误码和附带的数据来显示相应的弹窗提示,在这个版本中,SDK 会在收到对应错误码时主动显示相应的弹窗,SDK 仍将在用户点击弹窗确认按钮时返回对应的错误码,但不会再一起返回相应的错误内容。如果您原来的代码处理了这部分,请注意一下只返回错误码但没有内容的时候游戏是否能正确应对(即不显示弹窗也不会因此崩溃)。
6.8.0
一、登录新增 Steam 登录方式
新增 Steam 登录方式的枚举值,登录接口和绑定接口都支持了 Steam 的授权方式。
关于Steam的授权方式:
- PC Steam包:将通过Steamworks三方库拿取用户信息,用户无感知
- PC 非Steam包:会打开外部浏览器进行Steam授权拿取用户信息
- mobile客户端:会打开内嵌浏览器进行Steam授权拿取用户信息
用户中心也将支持 Steam 的绑定和解绑
二、PC 端新增了主机自动登录接口
我们可以把「Steam/PS/Nintendo」等平台上发行的游戏称之为主机游戏,对于这些游戏,用户们会更习惯用该平台账号登录游戏。对于这类游戏,推荐使用自动登录接口 API 来登录。
游戏如何正确的使用该接口,可以参考这里的方案
6.7.0
一、协议改版
这个版本里,SDK 会在用户退出登录的时候主动弹出协议签署的界面(这个界面的逻辑和初始化时的协议逻辑完全一致)以满足合规的需求。同时,如果用户同意协议后但是没有完成登录,SDK 在下次重新初始化的时候仍会主动弹出协议签署的界面,即签署的记录会和登录用户绑定,不登录的话不会保留记忆。
另外 SDK 新增了 获取当前子协议列表和展示协议链接窗口的 API。
二、iOS 支持在 iOS 13 以下的系统里以网页授权的方式登录 Apple 账号
这个版本里,iOS 支持在 iOS 13 以下的系统里以网页授权的方式登录 Apple 账号,游戏需要参考 开通 Android 平台的 Apple 登录 完成开通和配置。
三、新增 trackUser 不带参数的接口
新增 trackUser 不带参数的接口,默认会自动获取当前用户的 xdid 作为上报的 ID,如果以前使用的不是 XDID,请继续只用之前的接口。
四、Twitter 登录相关
检查本地某个平台的授权是否有效 的 API 支持检查 Twitter 的 token 是否失效,以及用户如果是以 Twitter 账号登录的,会在自动登录时检查 Twitter token 有效性并在无效时自动登录失败。
6.6.0
一、网页支付 Chrome Custom Tabs 新方案
针对 Google、Facebook 已经限制应用内嵌 WebView 的登录,在网页支付的第三方支付渠道中会有支持 Google、Facebook 这类的第三方登录进行授权登录,从 Google 限制说明 和 Facebook 限制说明 来说网页支付上的一些第三方支付渠道可能会影响到支付流程,故而改为使用 Chrome Custom Tabs 进行网页支付的实现。 参考网页支付配置相关对 AndroidManifest.xml 文件进行更新。
另外如手机不支持 Chrome Custom Tabs 服务时会打开手机的默认浏览器,对默认浏览器 SDK 无法做到更多的控制,从外部浏览器支付完成之后存在无法跳回应用的现象产生,当用户手动切回应用时会给到支付取消 的回调,与开发指南提到的一样,网页支付在 SDK 给到的回调是无法保证支付结果的准确性的,可以看作支付流程的一次结束时机,最终还是以 s2s 的结果为准。
请注意:其中配置的 scheme 规则中的 xd_client_id 为全小写!!
以下是我们对部分浏览器的测试结果:
二、TapTap 沙盒无感登录
针对使用 TapTap 沙盒无感登录时,可在 XDConfig.json
文件中将 tapsdk->permissions
的配置修改为 basic_info
。
6.5.3
PC 配置 json 文件中 webpay_url
改换为 webpay_url_for_pc
。
6.5.1
这个版本我们更新了 Google 支付的 SDK 版本(是上架/更新 GP 的要求),没有游戏需要处理的内容。
6.5.0
一、支持越南语
我们在 6.5.0 中支持了越南语,只需调用 设置语言 即可将 XDSDK 调整为 越南语显示(注意:TapSDK 截止 v3.12.0 还不支持越南语)。
二、邮箱唯一处理
这个事情说起来很复杂,所以我们准备了一遍 博文 来为您详细解释缘由。
以下是开发需要关注的事情:
6.5.0 在 登录接口 中会携带详细的错误信息提供给游戏来展示对应的UI。
为此开发需要在 XDConfig.json 中 tapsdk
和 facebook
的 permissions
节点增加 email
权限来让我们获得用户在各平台的绑定邮箱。
{
"tapsdk": {
xxx: xxx,
"permissions": [
"public_profile",
"email",
//必须,防止同一个邮箱的账号裂开
"user_friends"
// 需要好友权限的增加这一行,不需要可删除
]
},
"facebook": {
// Facebook 配置,可选,没有可以删除配置
"app_id": "xxx",
"client_token": "xxx",
"permissions": [
"public_profile",
"email",
//必须,防止同一个邮箱的账号裂开
"user_friends"
// 需要好友权限的增加这一行,不需要可删除
]
}
}
6.4.3
一、支持直接授权绑定第三方平台
我们在这个版本里支持了 查询第三方平台账号是否过期 以及可以直接调用的 第三方授权绑定接口,这个接口设计初衷是在使用 TDS 好友中的 Facebook 好友的时候,如果用户授权后保存在 XD & TDS 上的 Facebook 授权数据过期了的话,好友服务中 Facebook 的数据就无法访问了,这个时候就需要主动让用户重新授权一次才能正常使用好友服务。
从 6.x 升级到 6.4.0
一、需要自行接入防沉迷
从 XDSDK 6.4.0 开始,XDSDK 不再内置防沉迷 SDK 及其逻辑调用。游戏需要自行参考 TapSDK 中 实名认证和防沉迷开发指南 的内容来完成国内防沉迷的接入。 建议游戏预留一定的时间来完成接入和测试!
二、TapDB 版本注意
在国内版开发者中心(DC)上架的海外游戏(应用在国内 DC,但游戏在海外发行、游戏服务-应用配置中选择的适用地区也为海外),在升级 XDSDK 时需要注意 TapDB 最高使用版本只能 <= 3.6.1 版本。
自 TapDB 3.6.3 起,统计数据会报到海外集群,导致在国内开发者中心看数据分析(TapDB)的时候看不到任何数据。
如果要升级至 3.6.3 及更高版本,我们建议先把应用迁移到海外 DC,同时联系 DB 同事迁移旧数据至海外版。
强烈建议在国内 DC 上架的海外游戏尽快把应用迁移到海外 DC 上,具体迁移方式请联系 XDSDK 项管。
详情参考:TapDB 说明文档。