一、SDK 介绍
Tap 登录分为两种类型:
- 基于内建账户系统
- 单纯 TapTap 用户认证
以上两种方式功能区别可以参考官方文档介绍,本文档就不再赘述。该文档主要介绍基于内建账户系统的方式集成 Tap 登录。
开发环境要求:
- Unity 2019.4 或更高版本
- iOS 10 或更高版本
- Android 5.0(API level 21)或更高版本
🔗 Unity 集成 Demo 参考链接
🔗 Unity TapSDK 功能体验 APK 下载链接
二、集成前准备
1、开发者后台创建应用
进入开发者后台,开始创建应用;
2、应用配置
应用创建成功后,进入开发者后台中游戏服务,开通 TapTap 登录、内建账户功能;然后点击 TapTap 登录按钮,开始进行应用的包名和签名的配置;
⚠️包名和签名信息要和项目中包名签名保持一致
⚠️获取应用 Md5 签名的工具下载链接
以上操作成功后应该是如下图样式:
到此,恭喜你🎉,集成前准备工作完成了,接下来我们正式开始做些程序员该做的事了。加油打工人!!!
三、开始集成
1、导入依赖库
导入依赖库有两种方式,分别为Unity Package Manager(UMP)导入或手动导入(二者选其一即可):
- UMP 方式导入(这种更方便,比较推荐):
在项目的Packages/manifest.json
文件中添加以下依赖:
"dependencies":{
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#3.16.1",
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.16.1",
"com.taptap.tds.bootstrap":"https://github.com/TapTap/TapBootstrap-Unity.git#3.16.1",
"com.leancloud.realtime": "https://github.com/leancloud/csharp-sdk-upm.git#realtime-0.10.18",
"com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-0.10.18",
}
-
手动导入(因为要下载离线包,相对耽误时间):
1、先从官方 SDK 下载页找到 TapSDK Unity 和 LeanCloud C# SDK 下载地址,分别下载 TapSDK-UnityPackage.zip 和 LeanCloud-SDK-Realtime-Unity.zip。
2、解压 TapSDK-UnityPackage.zip 分别双击
TapTap_Bootstrap.unitypackage
、TapTap_Common.unitypackage
、TapTap_Login.unitypackage
然后导入包。3、将 LeanCloud-SDK-Realtime-Unity.zip 解压后 Plugins 文件夹,拖拽到 Unity 项目就好了;
2、初始化 SDK
using TapTap.Bootstrap;
using TapTap.Common;
using TapTap.Login;
var config = new TapConfig.Builder()
.ClientID("your_client_id") // 必须,开发者中心对应 Client ID
.ClientToken("your_client_token") // 必须,开发者中心对应 Client Token
.ServerURL("https://your_server_url") // 必须,开发者中心 > 你的游戏 > 游戏服务 > 基本信息 > 域名配置 > API
.RegionType(RegionType.CN) // 非必须,CN 表示中国大陆,IO 表示其他国家或地区
.ConfigBuilder();
TapBootstrap.Init(config);
⚠️注意初始化代码中的 Client ID、ClientToken、ServerURL,等信息一定要和开发者后台上的应用配置信息保持一致!!!
3、调用登录方法
try
{
var tdsUser = await TDSUser.LoginWithTapTap();
Debug.Log($"登录成功:{tdsUser}");
// 获取 TDSUser 属性
var objectId = tdsUser.ObjectId; // 用户唯一标识
var nickname = tdsUser["nickname"]; // 昵称
var avatar = tdsUser["avatar"]; // 头像
}
catch (Exception e)
{
if (e is TapException tapError) // using TapTap.Common
{
Debug.Log($"登录异常:{tapError.code} message:{tapError.message}");
}
}
🎉🎉🎉 恭喜你,到这里,主要的登录功能就已经集成完成了,如果需要其他的功能接口就继续往下看,如果要打包为 Android 或者 iOS,也请往后看看!
4、其他相关方法
检查登录状态
一般逻辑会先调用检查登录状态的接口,已登录时,可以直接进入游戏,未登录时,进行调用登录方法;
var currentUser = await TDSUser.GetCurrent();
if (null == currentUser)
{
Debug.Log("当前未登录");
// 开始登录
}
else
{
Debug.Log("已登录");
// 进入游戏
}
获取用户信息
var profile = await TapLogin.FetchProfile();
Debug.Log($"profile: {profile.ToJson()}");
登出当前账户
await TDSUser.Logout();
四、打包 Android APK
通过 File -> Build Settings;弹出 Build Settings 页面;
-
选择 Android,点击 Switch Platform,然后如下图:
-
点击 Player Settings,然后点击 Publishing Settings 设置签名文件
-
点击 Other Settings 设置 Package Name
-
最后直接点击 Build 开始构建,构建成功后就可以打包成功!到此就结束了!
⚠️注意此处设置的包名以及签名文件要和开发者后台配置的包名签名要保持一致!
五、导出 XCode 项目
⚠️如果是手动下载 unitypackage 进行 SDK 导入,需要将 Assets/TapTap/Common/Plugins/iOS/TapTap.Common.dll 设置为只支持 iOS。
- iOS 配置
在 Assets/Plugins/iOS/Resource 目录下创建 TDS-Info.plist 文件,复制以下代码并且替换其中的 ClientId。如果游戏使用了 TapTap 内嵌动态或数据分析服务,需要配置相关权限并替换授权文案:
<?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>
通过 File -> Build Settings;弹出 Build Settings 页面;
-
选择 iOS,点击 Switch Platform,然后如下图:
-
点击 Player Settings,开始设置 Bundle Identifier、Version、Company Name、Product Name 信息;
最后直接点击 Build 然后开始选择导出项目文件夹路径进行开始导出;
接着就是使用 XCode 打开导出项目中的 Unity-iPhone.xcodeproj 文件;
-
开始设置证书和 Bundle Identifier,结果如下:
最后开始运行就可以了,至此所有集成介绍全部完成!
六、常见问题
常见问题就不逐一介绍,遇到问题可以按照以下思路进行排查:
60% 的问题是初始化使用的 Client Id 以及项目中包名、签名和 Tap 开发者后台上所配置的信息不一致导致;
20% 的问题是没有按照文档一步步操作,可以按照集成文档再检查一遍集成中哪里有遗漏,例如:导入的依赖库是否一致;接口调用方法是否一致;
剩下的 20% 问题如果还不能解决,可以私信发我,或者可以通过 Tap 开发者后台右上角工单按钮进行提交工单,会有对应的技术支持协助排查,他们服务效率挺高,态度也是很不错。