实名认证和防沉迷开发指南
使用 TDS 实名认证和防沉迷服务之前,需要在 开发者中心后台 > 游戏服务 > 开发与构建 > 合规认证 处开通服务,可选择「已有版号」或「暂无版号」方案。
环境要求
- Unity
- Android
- iOS
- UE4
- Unity 2019.4 或更高版本
- iOS 11 或更高版本,Xcode 16 及以上版本
- Android 5.0(API level 21)或更高版本
Android 5.0(API level 21)或更高版本
iOS 11 或更高版本,Xcode 16 及以上版本
- 支持 UE 4.26.2
- iOS 12 或更高版本
- Android 5.0(API level 21)或更高版本
- macOS 10.14.0 或更高版本
- Windows 7 或更高版本
支持平台:Android / iOS / Windows / macOS
权限说明
- Unity
- Android
- iOS
- UE4
该模块需要如下权限:
| 权限 | 使用目的 | 权限申请时机 |
|---|---|---|
| 网络权限 | 用于正常网络请求 | 用户首次使用该功能时会申请权限 |
| 获取网络状态权限 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 |
该模块将在应用中添加如下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
集成前准备
- 参考 准备工作 创建应用、开启应用配置。
- 参考实名认证和防沉迷功能介绍中准备工作开通防沉迷服务。
- 防沉迷模块依赖于 TapTap 登录模块,开发者接入防沉迷前应先接入 TapTap 登录 相关依赖。
SDK 配置
可以在 下载页 获得 TapSDK,引入防沉迷模块。
- Unity
- Android
- iOS
- UE4
SDK 可以通过 Unity Package Manager 导入或手动导入,二者任选其一。请根据项目需要选择。
方法一:使用 Unity Package Manager
NPMJS 安装
从 3.25.0 版本开始,TapSDK 支持了 NPMJS 安装,优势是只需要配置版本号,并且支持嵌套依赖。
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.tapsdk.antiaddiction":"3.30.1",
"com.taptap.tds.common":"3.30.1",
"com.taptap.tds.login":"3.30.1",
}
但需要注意的是,要在 Packages/manifest.json 中 dependencies 同级下声明 scopedRegistries:
"scopedRegistries": [
{
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": ["com.tapsdk", "com.taptap"]
}
]
GitHub 安装
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.30.1",
"com.tapsdk.antiaddiction":"https://github.com/TapTap/TapAntiAddiction-Unity.git#3.30.1",
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#3.30.1",
"com.leancloud.storage":"https://github.com/leancloud/csharp-sdk-upm.git#storage-2.3.0",
}
在 Unity 顶部菜单中选择 Window > Package Manager 可查看已经安装在项目中的包。
方法二:手动导入
-
在 下载页 找到 TapSDK Unity 下载地址,下载
TapSDK-UnityPackage.zip。 -
在 Unity 项目中依次转到 Assets > Import Packages > Custom Packages,从解压后的
TapSDK-UnityPackage.zip中,选择希望在游戏中使用的 TapSDK 包 导入,其中:
TapTap_Common.unitypackageTapSDK 基础库,必选。TapTap_AntiAddiction.unitypackageTapTap 防沉迷库,必选。
- 从 LeanCloud-SDK 下载页 中下载并解压 LeanCloud-SDK-Storage-Unity.zip,然后将 Plugins 文件夹拖拽至 Unity 即可。
iOS 平台配置:
使用 Xcode 13.0 beta 5 编译,检查 Unity 输出的 Xcode 工程:
查看 Unity 输出的 Xcode 工程详情配置
- 请确保设置
Xcode-General-Frameworks, Libraries, and Embedded Content中的AntiAddictionService.framework和AntiAddictionUI.framework为Do Not Embed。

- 如果编译报错找不到头文件或者模块,请确保
Xcode-Build Settings-Framework Search Paths中的路径以保证 Xcode 正常编译。

- 确保 Xcode 工程的
Build Settings的Swift Compile Language/Swift Language Version为Swift5。

- 添加 依赖库
libz.tbd、libc++.tbd。

-
开始代码接入。
-
将
AntiAddiction-Unity/Assets/Plugins/iOS/Resource/AntiAdictionResources.bundle拷贝到 Unity 导出的 Xcode 工程目录下(如果 Unity 项目没有正确导入AntiAddictionResources.bundle)。假设你的 Unity 项目名称为 AntiDemo,则默认导出 Xcode 工程名为 antidemoxcode,需要将AntiAdictionResources.bundle拷贝到 antidemoxcode 目录里。拷贝成功后在项目的Build Phases>Copy Bundle Resources里添加拷贝的AntiAdictionResources.bundle。

- 将 防沉迷 SDK
AntiAddiction_3.30.1.aar拷贝到游戏目录下的src/main/libs目录中 - 将 防沉迷 SDK
AntiAddictionUI_3.30.1.aar拷贝到游戏目录下的src/main/libs目录中 - 将
TapCommon_3.30.1.aar拷贝到游戏目录下的src/main/libs目录中 - 将
TapLogin_3.30.1.aar拷贝到游戏目录下的src/main/libs目录中 - 将
TapBootstrap_3.30.1.aar拷贝到游戏目录下的src/main/libs目录中 (可选)
在游戏目录下 build.gradle 文件中添加代码
repositories{
flatDir{
dirs 'src/main/libs'
}
}
dependencies {
// ...
implementation(name: "AntiAddiction_3.30.1", ext: "aar") // 防沉迷 SDK
implementation(name: "AntiAddictionUI_3.30.1", ext: "aar") // 防沉迷 SDK
implementation(name: "TapCommon_3.30.1", ext: "aar")
implementation(name: "TapLogin_3.30.1", ext: "aar")
implementation(name: "TapBootstrap_3.30.1", ext: "aar") // 可选
// ...
}
iOS 防沉迷 SDK 结构:
AntiAddictionService防沉迷基础库,源码由 Swift 编写。AntiAddictionUI带 UI 的防沉迷库,依赖AntiAddictionService,源码由 Objective-C 编写。AntiAddictionResources.bundle资源文件
其他依赖:
TapCommonSDK.framework基础库TapLoginSDK.framework基础库TapCommonResource.bundle资源文件TapLoginResource.bundle资源文件TapBootstrap.framework基础库(可选)LibProtocolBuffers.framework基础库 // 3.29.4 版本需要添加 LibProtocolBuffers
添加防沉迷库文件:
-
添加
AntiAddictionService.framework、AntiAddictionUI.framework、TapLoginSDK.framework、TapBootstrap.framework(可选) 和TapCommonSDK.framework、LibProtocolBuffers.framework (仅 3.29.4 ) 静态库。注意添加时选择 Embed 方式为 Do Not Embed。 -
引用代码:
// AntiAddictionUI
#import <AntiAddictionUI/AntiAddictionUI.h>
添加系统依赖库:
请检查项目中是否已自动添加以下依赖项:
libc++.tdblibz.tdb
若运行时遇到相关依赖库加载报错,可改为 Optional 尝试。
配置编译选项:
-
在 Build Setting 中的 Other Link Flag 中添加
-ObjC和-Wl -ld_classic。 -
在 Build Setting 中的 Always Embed Swift Standard Libraries 设置为 YES,即始终引入 Swift 标准库,避免 App 启动时报错「无法找到 Swift 标准库之类」。如果项目中找不到,可以建立一个空 Swift 文件,Xcode 会自动建立桥接关系。
-
在 Build Setting 中的 Swift Compiler - Language/Swift Language Version 选择 Swift 5。
安装插件
- 下载 TapSDK UE4,TapSDK-UE4-xxx.zip 解压后将
AntiAddiction、TapCommon、TapLogin、TapBootstrap(可选)文件夹 Copy 到项目的Plugins目录中 - 重启 Unreal Editor
- 打开 编辑 > 插件 > 项目 > TapTap,开启
AntiAddiction模块
添加依赖
在 Project.Build.cs 中添加所需模块:
PublicDependencyModuleNames.AddRange(new string[] { "Core",
"CoreUObject",
"Engine",
"Json",
"InputCore",
"JsonUtilities",
"SlateCore",
"TapCommon",
"TapLogin",
"TapBootstrap", // 可选
"AntiAddiction"
});
导入头文件
#include "AntiAddictionUE.h"
iOS 打包 Objective-C 和 Swift 的混编解决方案
目前有两种解决方案