FAQ
如果遇到任何本文未列出的问题,请联系业务接口人。
LEVEL INFINITE PASS
客户端
升级到 LI PASS 会导致原有玩家账号丢失或其他登录 问题吗?
不会。登录 LI PASS 时会验证该电子邮件是否已在自定义账号中注册。LI PASS 会自动创建新的 OpenID 或迁移旧的 OpenID。它还支持回滚到原始账号服务,以避免账号丢失。
升级到 LI PASS 后,是否会让玩家感到困惑并导致用户流失?
玩家会得到清晰的提示,而将体验的波动降至最低。
是否有新的阶段或步骤(如再次进行年龄验证)导致用户流失?
没有新增阶段。LI PASS 包含一整套用户界面交互,包括账号注册、登录和合规服务。它保证了品牌概念的一致性,降低了游戏开发和集成的成本。合规服务支持未成年人年龄验证和跨游戏验证的状态迁移,减少了因重复年龄验证和实名验证过程而造成的玩家流失。
LI PASS 玩家(来自其他游戏)是如何被您的游戏吸引的?是否存在合规风险或声誉风险?
游戏通过 SmartLink 向 LI PASS 玩家发送营销电子邮件,或占用 LI PASS 网站营销资源来推广游戏和引导下载。LI PASS 隐私协议必须说明如何使用玩家数据,法律团队必须批准隐私协议,以避免合规风险和声誉风险。
INTLConfig.ini
是否支持为服务 条款和隐私协议配置多语言 URL?
不,INTLConfig.ini
不支持多语言,请在对应的 HTML5 页面自行配置。
如何修改 LI PASS 的国家/地区列表?
通过下列步骤修改 LI PASS V1.06 及之前版本的国家/地区列表。V1.07 及之后的版本,请参见 UpdateCountryList 接口。
- Unity
- Unreal Engine
- 联系 Player Network 接口人提单修改国家/地区列表。
- 利用研发提供的
AssetBundle
文件来覆盖替换目录{Project}\Assets\StreamingAssets\INTLGameNative\
下的AssetBundle
文件。
-
手动删除以下跟 LUA 文件同名的 32-bit 和 64-bit LUAC 文件。
{Project}\LevelInfinite\Content\INTLGameNative\LevelInfinite\Luac\MinorsCertificate\Region32.luac
{Project}\LevelInfinite\Content\INTLGameNative\LevelInfinite\Luac\MinorsCertificate\Region64.luac
-
在原 LUAC 文件位置
{Project}\LevelInfinite\Content\INTLGameNative\LevelInfinite\Luac\MinorsCertificate
放入Region.lua
。
在 Unity 导入 LI PASS 后发生编译错误如何解决?
错误信息参考:
Assets\LevelInfinite\Scripts\INTLGameNative\Scripts\LuaObject\Unity\INTLLua_UnityEngine_SystemInfo.cs(1836,16): error CS0619: 'SystemInfo.supportsGPUFence' is obsolete: 'SystemInfo.supportsGPUFence has been deprecated, use SystemInfo.supportsGraphicsFence instead (UnityUpgradable) -> supportsGraphicsFence'
这是因为 sLua 生成的 LuaObject 代码跟当前引擎版本不匹配,需要重新生成 LuaObject。在 Unity 菜单栏,选择 INTLLua > All > Clear > Make 即可,详见 导入 LevelInfinite 插件。
LI PASS 是否支持合规程序的定制?
支持自定义第三方渠道的合规程序,但不支持自定义 LI PASS 合规程序。
LI PASS 关闭热更后,业务该如何清除旧资源来加载本地资源?
移动端业务需提示玩家卸载重装,PC 端则需清理 Player Network SDK 缓存目录。
如果游戏没有调用 SetDefaultUserStorage
接口,PC 端 Player Network SDK 缓存数据的默认路径为 %ProgramData%\INTL\{game id}\{application name}\
。例如 game id 为 11,application name(游戏应用名称)为 INTLSDKDemo 时,缓存数据将保存在 %ProgramData%\INTL\11\INTLSDKDemo
。
更多信息,请参见 SetDefaultUserStorage 接口。
SetRewardExtraJson
接口入参解析失败,SDK 对入参是否有兼容?
SDK 层对入参不传值或者 ""
的场景做了兼容,但需业务自行添加标准的 JSON 格式校验。接口入参非标准的 JSON 格式,会导致 SDK 解析失败。
Windows 平台 LI PASS 密码登录时,语言会自动切换为中文。输入字母后再输入数字时,密码会回退并清除前面字符。
因系统设置中的输入法语言切换为中文导致,非 Player Network SDK 组件问题。密码输入框文本发生变化时,会把文本中除字母数字和支持的符号以外的字符剔除掉。
把系统设置中 的默认输入法语言切换为英文即可。
使用 Player Network 控制台云控功能下发配置,客户端何时生效?
云控功能无法保证一定可以下发到每个玩家,这取决于玩家当前的网络质量。
例如,玩家首次在 iOS 安装游戏时会需要授权网络,而在未经玩家授权的情况下,下发往往不会成功。玩家授权网络后,后续每次启动客户端时都会进行云控拉取,并在下次启动生效。
针对有多渠道包配置的业务,建议在打包时就配置好不同渠道的信息,避免 Player Network 控制台下发生效时机导致的更新不及时等问题。
游戏启动报错 GameNative sdk get config failed!, ret:1006, msg:gameid not valid!
第一次接入 LI PASS 需要开通 GameNative 权限,请联系 Player Network 助手开通。
Windows 在 Unreal Engine 导入 LI PASS 后,调用 ULevelInfiniteAPI::OpenLoginPanel
时在 Editor 触发报错。
错误信息参考:
[UE]: INTLGameNative::Lua error: ...elInfinite\Lua\Lua_unreal\AuthWindow\AuthWindowPanel.lua:565: attempt to index a nil value (field 'TextBlock_SendCodeButtonText')
Windows 程序退出时候 LI PASS 主动调用 CloseLI
,但是无法在 Editor 里触发,所以需要在初始化 Editor 模式前调用 CloseLI
,清理上次运行的 Lua 虚拟机残留数据。
"ret":1018,"msg":"sigkey not found"
因为 INTLConfig.ini 配置文件中的 INTL_URL
和 ACCOUNT_URL
环境信息不一致所导致。修改 INTLConfig.ini
配置文件后,如仍然未生效,建议删除 LOG 路径下的下列缓存文件:
- ApasRemoteConfig
- IntlCustomConfig.tmp
- IntlRemoteConfig
- LipassRemoteConfig
如何禁用 LI PASS 用到的 LuaProfiler
性能检测工具?
-
把
LevelInfinite.uplugin
文件里LISluaProfile
的内容删除后,LuaProfiler
不再运行
-
删除对应
LuaProfiler
代码的文件夹
调用 INTLAPI.SetAuthEncryptData
在调试模式下启动游戏导致 Unity 崩溃。
在初始化 LI PASS 之前需要先初始化 Player Network SDK。
LI PASS 登录闪退报错"backtrace:intl::SecurityCheckUtil"
在 INTLConfig.ini
文件中添加配置开关 SECURITY_FLAG = 0
即可。更多信息,请参见 Player Network SDK 上报
构建报错:Assets\Levellnfinite\Runtime\/NTLGameNative\Scripts\LuaObject\Unity\INTLLua_UnityEngine_Application.cs(529,28):error CS0117:'Application'does not contain a definition for ’Setll2cppMonitorAlloc‘
确保生成 LuaObject 时候的 Unity 版本与打包时候的版本一致。
在 Unity 中生成 LuaObject 时出现"FileNotFoundException: Could not load the file 'Assembly-CSharp-Editor"
由于程序集尚未编译,LI PASS 找不到 Editor 文件夹所导致,一般在新建或没有内容的工程中出现。
手动创建一个 Editor 文件夹,并在其中添加一个空白脚本即可。
LI PASS 修改密码是否会将客户端已登录的玩家踢出?
不会,但可以在账号中心内让其他设备强制下线。
LI PASS 登录报错:Network error, please try again later [error_4_77]
该错误通常是因为丢失了 INTL 网络库证书,可以检查 INTLSDK/Source/INTLFoundation/Libs/Win/X86_64
路径下是否有 cacert.pem
文件。
Web 端
LI PASS Web 组件界面位置显示问题
可以把 renderMode
参数调整为 modal
模态框模式,请参见 Config 说明。
Web 组件第三方渠道登录时,绑定 LI PASS 弹窗没有显示快捷绑定邮箱
绑定时是否进入快速绑定流程将由渠道和玩家账号的状态来判断:
- 该业务是否开启了该渠道获取邮箱的能力(业务是否有授权)
- 能否从该渠道获取到玩家邮箱(玩家是否有授权)
- 获取到的邮箱,是否注册过 LI PASS,是否有该游戏的 OpenID(能否绑定)
只有满足以上所有条件才会进入快速绑定流程,否则会让玩家手动输入邮箱。
在使用 Web 端登录 LI PASS 时,合规认证表现与预期不一致
Player Network 控制台可能未开启相关的合规认证步骤,建议检查 Player Network 控制台的合规认证配制。
登录鉴权
登录失败的常见问题
账号数据能清档吗?
测试环境可以联系 Player Network 助手清档。
正式环境账号数据无法清档。
绑定账号成功后如何获取已绑定账号的信息?
登录成功后,调用 QueryUserInfo
回调结果 INTLAuthResult
的 BindList
即为已绑定账号的信息。
可以绑定两个相同渠道的账号吗?例如,一个游客账号绑定2个 Facebook 账号,或者 Facebook 账号绑定另1个 Facebook 账号?
不可以,每个渠道只能绑定一个账号。
绑定失败,错误码:retCode: 5
、thirdCode: 1403
。
可能是以下的原因造成的:
- 已绑定过该渠道的账号
- 被绑定的账号已被绑定过
- 被绑定的账号登录过
通过查询已绑定账号的信息,如果 BindList
,里没有被绑定渠道的账号信息则导致的原因为 2 或 3,否则是 1。
游客账号链接到渠道账号后, OpenID 会改变吗?
不会,OpenID 不会更改。
卸载游戏后游客账号会重置吗?
SDK V1.7 及之后的版本不会有这个问题,可调用 ResetGuest
重置账号。V1.6 及之前的版本,卸载游戏时将重置账号。
第三方渠道授权成功后绑定失败会无法切换账号,也无法登出
请清理浏览器数据后在浏览器登出第三方渠道账号,然后清理应用数据,再尝试绑定。
删号的 intl_cluster
是什么参数?
INTLConfig.ini
中 INTL_URL
的 base64URL
编码。
怎么清除 Android 游戏的缓存?
不同手机的操作顺序不同,下文中以 Google Pixel 4a 手机为例展示清除游戏缓存的步骤。
- 打开手机找到 设置。
- 选择 存储 > 内部共享存储空间 > 游戏 然后选择要清除缓存的游戏。
- 点击 清除存储空间 和 清除内存。
[Unity] MiniJson 反序列化拿到的 INTLAuthResult
为空
查看 Unity 的 Project Setting 下的 Managed Stripping Level 是否是 low。如果必须使用其他级别,请联系 Player Network 助手。
同一个第三方账号在不同环境的环境下生成的 OpenID 是否一样?
不一样,同一个第三方账号在不同环境会生成不同的 OpenIDs。
自动登录失败,错误代码: retCode: 5
、thirdCode: 11002
自动登录失败,因为登录令牌已过期并删除 (默认登录后30天)。发生错误时,游戏可再次拉起登录界面以允许玩家重新登录。
UI 界面,密码框和背景融为一体问题。
在 UIRoot
中设置 ForceVolatile
。
网页游戏配置问题
请检查下 Facebook 管理端是否有填写图中的 Website 配置,该配置代表游戏有网络版本。如果没有网络版本,请删除该配置。如果填写不正确,游戏会遭到 Facebook 禁用下架。
[iOS] 系统分享到 Facebook 显示的图片不是 ImagePath
的图片。
iOS 系统分享对内容处理的流程导致。因为同时提供了 Link
和 ImagePath
图片,iOS 先从 Link
里面获取到了一个图片。
[System] 同时分享文本,链接和图片,但文本不显示。
有图片或链接时,文字就不显示了,文字需要手动输入。
[Discord]查询好友的时候,拉取的信息是不是仅限于同玩好友?
不是,Discord 查询的是平台好友,不是同玩好友。
[Discord]多商店渠道包,如果每个渠道包的 Discord appid
不同,Discord 获取的好友是不是每个渠道包的数据是隔离的?
不是。
登录为什么不触发回调?
调用回调逻辑有问题:
- 打开界面的时候需要监听
AuthResultObserver
方法。
- Unity
- Unreal Engine
public override void Start()
{
base.Start();
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
}
更多信息,请参见 AuthResultObserver
。
void ULevelInfiniteWindow::OnOpen()
{
Super::OnOpen();
FocusSampleUI();
AuthResultObserver = UINTLSDKAPI::GetAuthResultObserver().AddUObject(this, &ULevelInfiniteWindow::OnAuthResult_Callback);
}
更多信息,请参见 AuthResultObserver
。
- 初始化需调用这个接口:
- Unity
- Unreal Engine
public void OnLIPASSInitClick()
{
isVMStart = true;
var activityName = INTLAPI.GetConfig(LevelInfinite.DefaultActivityKey, "LILandscape");
ShowLogInNewLine(string.Format("Init:\nLI plugin ver:[{0}] \ndefault activity:[{1}]", LevelInfinite.Version, activityName));
LevelInfinite.InitLIP(font,LI_Sample_APP_VERSION);
LevelInfinite.SetUIRoot(uiRoot);
SetupCanvasResolution();
}