12/12/2024 11:37:55
解决方案
一、概述
MSDKV3 版本与 MSDKV5 版本对应后台数据存储不一致,当 MSDKV3 版本升级到 MSDKV5 版本后,需要对 MSDKV3 版本存量玩家数据进行迁移。主要迁移数据有:
(1)游客账号:仅限 iOS;
(2)手Q/微信渠道登录 openid 沿用 MSDKV3 版本 openid;
(3)注册渠道;
依赖条件:MSDKV5.7 及以上版本支持。
二、V3升级V5的游客迁移过程
客户端游客登录和迁移流程,如下图所示。
三、必要的配置( 重要!必须!)
V3游客迁移特别提醒
1、【平台ID】原有工程的 QQ-AppId 和 微信-AppId 参数不要更改;
2、【工程参数】原有的 iOS 的 XCode 工程 Keychain Sharing 参数配置不要更改;
3、【客户端配置】在 MSDKAppSetting.bundle 中的配置文件 MSDKConfig.ini 文件中,确保迁移配置开关是开启的;
(1)开启 MSDKV3 的 Guest 数据迁移,1标识开启找回,0标识不开启。
MSDK_MIGRA_GUEST_FROMV3_ENABLE = 1
(2)同时对于 iTOP1 升级到 MSDKV5 的配置开关,保持关闭状态。
MSDK_MIGRA_GUEST_FROM_ITOP1_ENABLE = 0
4、【管理端配置】确认:飞鹰系统管理端【MSDK V3升级V5】选择 【是】(下图为MSDKDemo示例配置)
5、【管理端配置】确认:渠道实名认证配置开启(由项目组管理员开启),路径:飞鹰系统->我的游戏->登录信息
四、测试验证
1、手Q/微信
(1)手Q/微信渠道登录使用的 gopenid 值与V3版本的 openid 一致,对应V3版本的登录、关系链、分享等接入功能正常。
(2)手Q/微信渠道使用V3版本及V5版本登录时pf值一致。
2、游客
(1)前置条件
① 测试手机从 未安装过 V5版本对应的app;
② 每个手机设备只能测试一次 首次升级流程;
(2)结果验证
V5版本的游客openid与V3版本的游客openid一致。
(3)测试流程
① 设备A未安装过V5对应的app;
② 设备A安装V3对应的app,并进行过游客登录,登录返回openid为a;
③ 使用V5对应的app版本覆盖V3版本,并进行 首次V5的游客登录 。期望登录返回的openid为a;
首次安装V5,执行游客登录的日志如下:(打开MSDK日志开关可查看)
其中 :
"upgrade_from":3 标记首次游客从V3迁移到V5
msdk_v3_guestid、msdk_v3_access_token、msdk_v3_request_id、msdk_v3_hid
均为V3的游客设备id等数据,业务无需关心
{
"channel_info": {
"uuid": "B782B6EC-E1B5-4664-85A7-56CFF18A124B",
"upgrade_from":3,
"msdk_v3_guestid": "G_e93d14c46032656e9143bf55e1ec0ba3",
"msdk_v3_access_token": "a7W9DrbqnKZWxly5Vlmoy9elzvmb2NIMhTB_l8TWru0=",
"msdk_v3_request_id": "38CDF073571C14187CD1FAE403C5057DF105BA6B4CF9F1F59DDCB9F69F309ECAC4D98CBA302EE74C",
"msdk_v3_hid": "AB750C9F-18B1-480E-8179-7A7665D347F5"
},
"device_info": {
"uuid": "B782B6EC-E1B5-4664-85A7-56CFF18A124B",
"device_language": "English",
"app_version": "1.1.4(100076)",
"screen_dpi": 2.0,
"resolution": "828*1792",
"trade_mark": "iPhone",
"manufacturer": "APPLE",
"model": "iPhone 11",
"apn": "unkown",
"ram_info": "3844",
"rom_info": "59",
"cpu_info": "16777228-2",
"hw_machine": "iPhone12,1",
"idfa": "5D49E066-6998-42E0-9BE0-5FEC8ADD64DA"
},
"channel_dis": "1001"
}
首次安装V5并启动过app之后。 后续的每次进行游客登录日志如下 ,后续都不再会有 "upgrade_from":3 的标记,但是其他的V3的设备id等数据。
日志如下:
{
"channel_info": {
"uuid": "B782B6EC-E1B5-4664-85A7-56CFF18A124B",
"msdk_v3_guestid": "G_e93d14c46032656e9143bf55e1ec0ba3",
"msdk_v3_access_token": "a7W9DrbqnKZWxly5Vlmoy9elzvmb2NIMhTB_l8TWru0=",
"msdk_v3_request_id": "38CDF073571C14187CD1FAE403C5057DF105BA6B4CF9F1F59DDCB9F69F309ECAC4D98CBA302EE74C",
"msdk_v3_hid": "AB750C9F-18B1-480E-8179-7A7665D347F5"
},
"device_info": {
"uuid": "B782B6EC-E1B5-4664-85A7-56CFF18A124B",
"device_language": "English",
"app_version": "1.1.4(100076)",
"screen_dpi": 2.0,
"resolution": "828*1792",
"trade_mark": "iPhone",
"manufacturer": "APPLE",
"model": "iPhone 11",
"apn": "unkown",
"ram_info": "3844",
"rom_info": "59",
"cpu_info": "16777228-2",
"hw_machine": "iPhone12,1",
"idfa": "5D49E066-6998-42E0-9BE0-5FEC8ADD64DA"
},
"channel_dis": "1001"
}
五、云游戏适配及测试验证
如您的游戏有云游戏场景的需求,请按以下步骤处理
1、 确认 SchemeActivity 配置
V5 版本的 SchemeActivity 包名与 V3 版本的不同,升级后请确认 AndroidManifest.xml 中 SchemeActivity 的包名为 com.tencent.gcloud.msdk.SchemeActivity ,
示例代码如下:
<activity
android:name="com.tencent.gcloud.msdk.SchemeActivity"
android:exported="true">
...
</activity>
2、拉起数据处理
云游戏拉起游戏时携带的数据,游戏侧如果有针对这块数据接收并做处理的逻辑,请注意按 V5 版本进行适配。
3、测试验证
发布到云游戏平台前,需要做好云游戏场景下的测试验证。
All rights reserved.