TapSDK 快速开始
本文介绍如何快速接入 TapSDK 并实现 TapTap 登录 功能。
下载 页面提供了 Unity、Android、iOS 示例项目,可供参考。
创建应用
请登录 TapTap 开发者中心 注册为开发者并创建应用。
下载 TapTap 应用
在测试设备中下载 TapTap 客户端,测试时会唤起 TapTap 客户端授权登录。若用户设备中未安装 TapTap 客户端,则会打开 WebView 进行登录。
环境要求
- Unity
- Android
- iOS
- UE4
- Unity 2019.4 或更高版本
- iOS 11 或更高版本,Xcode 版本 14.1 或更高版本
- Android 5.0(API level 21)或更高版本
- Android 5.0(API level 21)或更高版本
- iOS 11 或更高版本,Xcode 版本 14.1 或更高版本
- 安装 UE 4.26 及以上版本
- iOS 12 或更高版本
- Android 5.0(API level 21)或更高版本
支持平台:Android / iOS
- 下面的项目配置以及初始化部分,预设开发者使用基于内建账户系统 的 TDS 服务。
- 如果游戏已经有了完整的账户系统,仅需要接入 TapTap 登录、内嵌动态,且不需要 TDS 更多云服务,则不必参考下面的配置和初始化方式,可跳转至 单纯的 TapTap 登录开发指南、内嵌动态开发指南。
- 请慎重选择,如果之后需要其他 TDS 服务,升级需要一定的开发成本。
项目配置
- Unity
- Android
- iOS
- UE4
SDK 可以通过 Unity Package Manager 导入或手动导入,二者任选其一。请根据项目需要选择。
方法一:使用 Unity Package Manager
从 3.29.1 版本开始, SDK 修改 JSON 解析库为 Newtonsoft-json,如果当前工程已接入该依赖库,则不需额外处理,否则需在 Packages/manifest.json 添加如下依赖:
"com.unity.nuget.newtonsoft-json":"3.2.1"
NPMJS 安装
从 3.25.0 版本开始,TapSDK 支持了 NPMJS 安装,优势是只需要配置版本号,并且支持嵌套依赖。
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.taptap.tds.bootstrap":"3.29.4",
"com.taptap.tds.login":"3.29.4",
"com.taptap.tds.common":"3.29.4",
}
但需要注意的是,要在 Packages/manifest.json 中 dependencies 同级 下声明 scopedRegistries:
"scopedRegistries": [
{
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": ["com.tapsdk", "com.taptap", "com.leancloud"]
}
]
GitHub 安装
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#3.29.4",
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.29.4",
"com.taptap.tds.bootstrap":"https://github.com/TapTap/TapBootstrap-Unity.git#3.29.4",
"com.leancloud.realtime":"https://github.com/leancloud/csharp-sdk-upm.git#realtime-2.3.0",
"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_Bootstrap.unitypackageTapSDK 启动器,必选。TapTap_Common.unitypackageTapSDK 基础库,必选。TapTap_Login.unitypackageTapTap 登录,必选。
- 如果当前项目已集成
Newtonsoft.Json依赖,则忽略该步骤,否则在NuGet.orgNewtonsoft.Json 页面中通过点击右侧 「Download package」 下载库文件,并将下载的文件后缀从.nupkg修改为.zip,同时解压该文件并复制内部的Newtonsoft.Json.dll文件拷贝到工程Assets的Plugins目录下,另外为了避免导出 IL2CPP 平台时删除必要数据,需在Assets目录下创建link.xml文件(如果已有该文件,则添加如下内容),其内容如下:
<linker>
<assembly fullname="System.Core">
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all" />
</assembly>
</linker>
iOS 配置
在 Assets/Plugins/iOS/Resource 目录下创建 TDS-Info.plist 文件,复制以下代码并且替换其中的 ClientId。如果游戏使用了 TapTap 内嵌动态或数据分析服务,需要配置相关权限并替换授权文案:
复制使用以下内容时,请删除空行以及注释,以免出现 XML 解析时报错,ApplicationException: expected a key node。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>taptap</key>
<dict>
<key>client_id</key>
<string>ClientId</string>
</dict>
<!--使用内嵌动态服务,需要相册、相机、麦克风权限-->
<key>NSPhotoLibraryUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSCameraUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSMicrophoneUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<!--使用数据分析服务需要 IDFA 权限。如应用程序不想弹框,可以设置 TapDB.AdvertiserIDCollectionEnabled(false)-->
<key>NSUserTrackingUsageDescription</key>
<string>说明为何应用需要此项权限</string>
</dict>
</plist>
-
下载 TapSDK Android,解压后选择需要用到的 SDK 包导入到项目
project/app/libs目录下。 -
打开项目的
project/app/build.gradle文件,添加 gradle 配置如下:
dependencies {
...
// 导入 libs 目录下所有 aar 的包:
implementation fileTree(dir: 'libs', include: ['*.aar'])
// 如果需要单独导入 libs 目录下的指定包,请按照如下方式:
implementation files('libs/TapBootstrap_3.29.4.aar') // TapTap 启动器
implementation files('libs/TapCommon_3.29.4.aar') // TapTap 基础库
implementation files('libs/TapLogin_3.29.4.aar') // TapTap 登录
...
// 数据存储
implementation 'com.taptap:lc-storage-android:8.2.24'
// 即时通讯
implementation 'com.taptap:lc-realtime-android:8.2.24'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
}
-
在
AndroidManifest.xml添加网络权限:<uses-permission android:name="android.permission.INTERNET"></uses-permission> -
旧版 Android 额外配置
如果
targetSdkVersion < 29,还需要添加如下配置:manifest节点添加xmlns:tools="http://schemas.android.com/tools"application节点添加tools:remove="android:requestLegacyExternalStorage"
导入 SDK
-
在 Xcode 选择工程,到 Build Setting > Other Linker Flags 添加
-ObjC和-Wl -ld_classic。 -
下载 TapSDK iOS,解压后选择需要导入的资源文件,直接拖拽到项目目录即可。
-
视需要导入下载的资源文件:
-
必选:TapTap 启动器、基础库、登录
TapBootstrapSDK.framework
TapCommonSDK.framework
TapLoginSDK.framework
TapCommonResource.bundle
TapLoginResource.bundle
LeanCloudObjc.framework
-
-
请仔细核对下面依赖库是否都添加成功:
// 必选
WebKit.framework
Security.framework
SystemConfiguration.framework
CoreTelephony.framework
SystemConfiguration.framework
libc++.tbd
// TapTap 内嵌动态
AVFoundation.framework
CoreTelephony.framework
MobileCoreServices.framework
Photos.framework
SystemConfiguration.framework
WebKit.framework
// 数据分析
// 如果不需要获取 IDFA 则不要添加 `AppTrackingTransparency` 和 `AdSupport` 两个系统库
AppTrackingTransparency.framework
AdSupport.framework
CoreMotion.framework
Security.framework
SystemConfiguration.framework
libresolv.tbd
libsqlite3.0.tbd
libz.tbd
配置权限
如果游戏使用了 TapTap 内嵌动态或数据分析服务,那么需要在 info.plist 配置相关权限并替换授权文案:
<!--使用内嵌动态服务,需要相册、相机、麦克风权限-->
<key>NSPhotoLibraryUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSCameraUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSMicrophoneUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<!--使用数据分析服务需要 IDFA 权限。如应用程序不想弹框,可以设置 TapDB.AdvertiserIDCollectionEnabled(false)-->
<key>NSUserTrackingUsageDescription</key>
<string>说明为何应用需要此项权限</string>