Cocos Service:易盾(网易)快速入门

Cocos Service:易盾(网易)快速入门
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

易盾(网易)快速入门

易盾(网易),为开发者提供游戏包强化和反作弊能力。在开发过程中,开发人员手动集成 SDK。构建完成后,开发者只需点击一下即可强化游戏包。开发者无需为游戏安全防护进行额外的开发工作,可以专注于游戏业务逻辑,轻松构建游戏防御体系。支持所有平台:安卓,iOS,H5。

版本更新说明(Cocos Creator 2.x)

当前版本: 0.5.3_5.0.4_1.7.1.3

  • 优化账户关联流程。

0.5.2_5.0.4_1.7.1.3

  • 新增网易一盾服务。

版本更新说明(Cocos Creator 3.x)

当前版本: 2.1.0_5.0.4_1.7.1.3

  • 优化账户关联流程。

2.0.0_5.0.4_1.7.1.3

  • 新增网易一盾服务。

启用一盾服务

  • 使用 Cocos 创建器打开需要与 Yidun 服务集成的项目。
  • 点击菜单栏中的面板->服务,打开服务面板,选择Yidun服务进入服务详情页,然后点击右上角的启用按钮开启服务。详情请参考 Cocos 服务操作指南文档。

开通服务后,如果您的 cocos 账户未关联一盾账号,面板上会显示“关联一盾”按钮,具体如下:

点击“关联一盾”按钮,会弹出一个对话框,打开一盾关联页面,如下:

点击“同意并继续”后,您可以按以下方式登录/注册您的帐户:

如果您还没有Yidun帐户,请点击“免费注册”按钮并填写相关信息以注册Yidun帐户。注册后,您将自动登录;如果您已经拥有一盾账户,请输入您现有的一盾账户和密码登录。登录完成后,将显示以下授权页面:

点击“确认授权”,完成授权。授权完成后,返回 Cocos 创建器,点击“关联完成”,如下所示:

完成与Yidun账号的关联后,如果账号下没有游戏,面板会显示创建游戏的页面,如下:

填写相关信息后,点击“创建游戏”,完成游戏的创建。游戏创建完成后,将显示功能页面,如下所示:

  • 注1:在构建游戏时,请记住包名/捆绑包ID需要与Yidun账号的App一致。
  • 注2:如需添加新的软件包名称,请联系Yidun团队。

创建其他平台的应用程序(可选)

在Yidun,Android和iOS是两个独立的应用程序。如果您需要为其他平台创建App,请点击“平台”下拉菜单,选择目标平台(如“iOS”),具体如下:

选择后,如果您没有目标平台的应用,将显示以下创建应用页面:

  • 请填写相关信息,最后点击“创建游戏”,在此平台下创建App。如果您不想创建它,可以单击“取消”返回功能页面。

验证服务是否集成成功

游戏强化

游戏编译完成后,您可以强化游戏。

首先需要填写“保护文件”和“过滤文件”,告知易盾哪些文件需要保护,否则保护效果可能会降低,具体如下:

接下来,选择要强化的游戏包,如下所示:

  • 最后,点击“开始加固”以强化游戏(注意:请务必在下拉菜单中选择正确的平台,然后加固。例如,APK游戏包应该选择安卓平台的应用。

点击“开始加固”后,界面会显示加固进度,如下:

  • 加固成功后,系统会提示您是否需要下载强化游戏包。选择“确定”进行下载。您也可以点击加固历史记录中记录的“下载加固包”按钮进行下载。

反作弊软件开发工具包

如果您需要反作弊功能,请在加固前集成SDK。

首先,您需要检查“SDK集成”,如下所示:

接下来,单击“保存”按钮,如下所示:

  • 注意勾选“SDK 集成”后,SDK 只会在构建过程中自动集成,还需要手动调用 SDK API 才能使用反作弊功能(例如初始化 SDK),更多详情请参考 SDK 集成和 Yidun - Cocos 服务 API 文档。
  • 注:勾选“SDK集成”后,SDK只会集成在当前平台上,如果您需要将SDK集成到其他平台上,请切换到其他平台并勾选“SDK集成”。
  • 完成以上步骤后,我们可以通过在脚本中添加一个简单的代码来验证 SDK 集成是否成功,如下所示:
// Initialize the SDK
netease.yidun.yidunService.init();
// The default server area type is Chinese Mainland, if the area of your App is not Chinese Mainland,
// you need to pass an argument to tell SDK the server area type as follows:
// netease.yidun.yidunService.init(netease.yidun.ServerType.Other);
// For other SDK APIs, please refer to the documentation or the sample project.
  • 项目在手机上运行后,先确认没有“appId 不正确”等提示,然后进入易盾控制台“智能防作弊”板块下的“统计分析”页面,查看用户数量是否增加。

示例项目

开发人员可以通过示例项目快速体验 Yidun 服务。

  • 点击易盾服务面板的 示例 按钮,克隆或下载示例,然后在 Cocos 创建器中打开项目。
  • 启用 Yidun 服务并执行上述步骤后,打开菜单 项目 -> 构建以构建项目。

在手机上运行示例项目后,单击各种按钮以测试功能。

开发人员指南

有关完整代码,请参阅示例项目。

初始化开发工具包

首先,为了启用反作弊功能,我们需要初始化SDK。代码如下:

netease.yidun.yidunService.init();

默认情况下,服务器区域类型为 中国大陆,如果您的应用区域未中国大陆,您可以将服务器区域类型传递给如下:init

netease.yidun.yidunService.init(netease.yidun.ServerType.Other);

在 iOS 上,如果需要透传功能,需要将透传服务器的地址传递给如下:init

netease.yidun.yidunService.init(netease.yidun.ServerType.ChineseMainland, 'https://www.netease163.com');

SDK 的大部分反作弊功能会自动运行,不需要调用额外的 API,但有些 API 仍然需要手动调用(例如 API)。更多详情请参考 SDK 集成和 Yidun - Cocos 服务 API 文档。setRoleInfo

登录 API/设置角色信息

SDK需要知道当前玩家的角色ID、角色名称等,才能将当前的作弊行为与具体角色关联起来,并给予相应的惩罚。您需要调用 API 来设置角色信息。示例代码如下:setRoleInfo

const roleId = '123456';
const roleName = '易小盾';
const roleAccount = 'yd@163.com';
const roleServer = '游戏测试服';
const serverId = 123; // Only used on Android
const gameJson = {
  GameVersion: '1.0.1',
  AssetVersion: '1.0.1',
  TransHost: 'test.163.com',
  TransIP: '8.8.8.8',
  TransPort: 80,
};
netease.yidun.yidunService.setRoleInfo(
  roleId,
  roleName,
  roleAccount,
  roleServer,
  serverId,
  JSON.stringify(gameJson)
);
cc.log('setRoleInfo');
cc.log('roleId:' + roleId);
cc.log('roleName:' + roleName);
cc.log('roleAccount:' + roleAccount);
cc.log('roleServer:' + roleServer);
cc.log('serverId:' + serverId);
cc.log('gameJson:' + JSON.stringify(gameJson));

常规查询

ioctlAndroid并提供安卓和iOS下的通用查询功能,如查询根、模拟器、版本号等自定义功能。由于 Android 和 iOS 支持的不同查询和功能,它们分为两个界面。请根据具体平台调用不同的接口。ioctlIos

的示例代码如下:ioctlAndroid

let requestCmdId = netease.yidun.RequestCmdIdAndroid.GetEmulatorName;
cc.log('The name of the emulator:', netease.yidun.yidunService.ioctlAndroid(requestCmdId, ''));

requestCmdId = netease.yidun.RequestCmdIdAndroid.IsRootDevice;
cc.log('Is root device:' + netease.yidun.yidunService.ioctlAndroid(requestCmdId, ''));

requestCmdId = netease.yidun.RequestCmdIdIos.QuerySDKVersion;
cc.log('SDK Version:' + netease.yidun.yidunService.ioctlIos(requestCmdId, ''));

的示例代码如下:ioctlIos

let requestCmdId = netease.yidun.RequestCmdIdIos.QueryRootStatus;
cc.log('Root status:' + netease.yidun.yidunService.ioctlIos(requestCmdId, ''));

requestCmdId = netease.yidun.RequestCmdIdIos.QuerySDKVersion;
cc.log('SDK Version:' + netease.yidun.yidunService.ioctlIos(requestCmdId, ''));

requestCmdId = netease.yidun.RequestCmdIdIos.QueryYiDunCode;
cc.log('Yidun Code:' + netease.yidun.yidunService.ioctlIos(requestCmdId, ''));

其他接口

有关其他 API 的使用,请参阅文档和示例项目。

接口文档

有关 API 的详细说明,请参阅 SDK 集成和 Yidun - Cocos 服务 API 文档。

iOS 平台注意事项

如果你正在构建的目标平台是 iOS,并且勾选了“SDK 集成”,构建完成后,不要直接点击编译,需要用 Xcode 打开生成的 Xcode 项目,继续在 Xcode 中编译项目,否则编译会失败(这是因为当你在 Cocos Creator 中点击编译时, 模拟器的架构默认会编译,一般这是x86_64架构,Yidun SDK 目前不支持x86_64架构)。

对于 Cocos Creator 3.x,生成的 Xcode 项目的路径通常是 {your-project-directory}/build/jsb-link/frameworks/runtime-src/proj.ios_mac/{game-name}.xcodeproj。

对于 Cocos Creator 3.x,生成的 Xcode 项目的路径通常是 {your-project-directory}/build/{build-task-name}/proj/{game-name}.xcodeproj。

关于iOS游戏加固的问题需要启用位码,SDK集成需要禁用位码

如果你构建的目标平台是 iOS,需要注意:SDK 集成需要禁用位码构建选项(默认禁用),iOS 游戏强化需要启用位码构建选项(需要在 Xcode 中开启)。这些都是相互冲突的需求,目前 Cocos Creator 目前不支持启用 bitcode 进行编译,编译会失败(有些第三方库在编译时不包含位码),所以目前不支持 iOS 游戏的加固,但 SDK 的功能可以正常使用。

3D建模学习工作室 翻译整理,转载请注明出处!

上一篇:Cocos Service:Cocos Analytics 快速入门 (mvrlink.com)

下一篇:Cocos Service:FrontJS 快速入门 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号