TapSDK 快速开始 |
您所在的位置:网站首页 › taptap怎么找自己的评论 › TapSDK 快速开始 |
TapSDK 快速开始 本文介绍如何快速接入 TapSDK 并实现 TapTap 登录 功能。 备注下载 页面提供了 Unity、Android、iOS 示例项目,可供参考。 创建应用请登录 TapTap 开发者中心 注册为开发者并创建应用。 下载 TapTap 应用在测试设备中下载 TapTap 客户端,测试时会唤起 TapTap 客户端授权登录。若用户设备中未安装 TapTap 客户端,则会打开 WebView 进行登录。 环境要求UnityAndroidiOSUE4Unity 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 服务,升级需要一定的开发成本。项目配置UnityAndroidiOSUE4SDK 可以通过 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.2", "com.taptap.tds.login":"3.29.2", "com.taptap.tds.common":"3.29.2", }但需要注意的是,要在 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.2", "com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.29.2", "com.taptap.tds.bootstrap":"https://github.com/TapTap/TapBootstrap-Unity.git#3.29.2", "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.unitypackage TapSDK 启动器,必选。TapTap_Common.unitypackage TapSDK 基础库,必选。TapTap_Login.unitypackage TapTap 登录,必选。如果当前项目已集成 Newtonsoft.Json 依赖,则忽略该步骤,否则在 NuGet.org Newtonsoft.Json 页面中通过点击右侧 Download package 下载库文件,并将下载的文件后缀从.nupkg 修改为 .zip,同时解压该文件并复制内部的 Newtonsoft.Json.dll 文件拷贝到工程 Assets 的 Plugins 目录下,另外为了避免导出 IL2CPP 平台时删除必要数据,需在 Assets 目录下创建 link.xml 文件(如果已有该文件,则添加如下内容),其内容如下: iOS 配置在 Assets/Plugins/iOS/Resource 目录下创建 TDS-Info.plist 文件,复制以下代码并且替换其中的 ClientId。如果游戏使用了 TapTap 内嵌动态或数据分析服务,需要配置相关权限并替换授权文案: 提示复制使用以下内容时,请删除空行以及注释,以免出现 XML 解析时报错,ApplicationException: expected a key node。 DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> taptap client_id ClientId NSPhotoLibraryUsageDescription 说明为何应用需要此项权限 NSCameraUsageDescription 说明为何应用需要此项权限 NSMicrophoneUsageDescription 说明为何应用需要此项权限 NSUserTrackingUsageDescription 说明为何应用需要此项权限下载 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.2.aar') // TapTap 启动器 implementation files('libs/TapCommon_3.29.2.aar') // TapTap 基础库 implementation files('libs/TapLogin_3.29.2.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 添加网络权限: 旧版 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.frameworkTapCommonSDK.frameworkTapLoginSDK.frameworkTapCommonResource.bundleTapLoginResource.bundleLeanCloudObjc.framework请仔细核对下面依赖库是否都添加成功: // 必选WebKit.frameworkSecurity.frameworkSystemConfiguration.frameworkCoreTelephony.frameworkSystemConfiguration.frameworklibc++.tbd// TapTap 内嵌动态AVFoundation.frameworkCoreTelephony.frameworkMobileCoreServices.frameworkPhotos.frameworkSystemConfiguration.frameworkWebKit.framework// 数据分析// 如果不需要获取 IDFA 则不要添加 `AppTrackingTransparency` 和 `AdSupport` 两个系统库AppTrackingTransparency.frameworkAdSupport.frameworkCoreMotion.frameworkSecurity.frameworkSystemConfiguration.frameworklibresolv.tbdlibsqlite3.0.tbdlibz.tbd配置权限如果游戏使用了 TapTap 内嵌动态或数据分析服务,那么需要在 info.plist 配置相关权限并替换授权文案: NSPhotoLibraryUsageDescription说明为何应用需要此项权限NSCameraUsageDescription说明为何应用需要此项权限NSMicrophoneUsageDescription说明为何应用需要此项权限NSUserTrackingUsageDescription说明为何应用需要此项权限配置跳转 TapTap 应用用户无 TapTap 应用时,默认会通过 WebView 登录。 打开 info.plist,添加如下配置(请替换 clientID 为你在控制台获取的 Client ID): 配置 openUrl: a) 如果项目中有 SceneDelegate.m,请先删除,然后请添加如下代码到 AppDelegate.m 文件: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [TDSHandleUrl handleOpenURL:url];}- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { return [TDSHandleUrl handleOpenURL:url];}b) 删除 info.plist 里面的 Application Scene Manifest c) 删除 AppDelegate.m 文件中的两个管理 Scenedelegate 生命周期代理方法 #pragma mark - UISceneSession lifecycle- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];}- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions {}d) 在 AppDelegate.h 中添加 UIWindow @property (strong, nonatomic) UIWindow *window;下载 TapSDK UE4,TapSDK-UE4-xxx.zip 解压后将 TapBootstrap、TapCommon、TapLogin 文件夹 Copy 到项目的 Plugins 目录中重启 Unreal Editor打开 编辑 > 插件 > 项目 > TapTap,开启 TapBootstrap 和 TapLogin 模块添加依赖在 Project.Build.cs 中添加所需模块: PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "Json", "InputCore", "JsonUtilities", "SlateCore", "TapCommon", "TapBootstrap", "TapLogin"});if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.Android){ PublicDependencyModuleNames.AddRange( new string[] { // 推送接入 // "LeanCloudPush", "LeanCloudMobile" } );}else{ PublicDependencyModuleNames.AddRange( new string[] { "LeanCloud" } );}导入头文件#include "TapBootstrap.h"点击展开 iOS 配置在 项目设置 > Platform > iOS > Additional Plist data 中可以填入一个字符串,复制以下代码并且替换其中的 ClientID 以及授权文案。 CFBundleURLTypes CFBundleTypeRole Editor CFBundleURLName taptap CFBundleURLSchemes tt{ClientID} LSApplicationQueriesSchemes tapiosdk tapsdk taptap如果接入 TapDB 模块,那么还需要加上: NSUserTrackingUsageDescription{数据追踪权限申请文案}初始化初始化 TapSDK 时需传入 Client ID、区域等应用配置信息。 UnityAndroidiOSUE4using TapTap.Bootstrap; // 命名空间using TapTap.Common; // 命名空间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);请确保 TapSDK 的初始化在主线程(UI 线程)中执行。 TapConfig tdsConfig = new TapConfig.Builder() .withAppContext(MainActivity.this) // Context 上下文 .withClientId("your_client_id") // 必须,开发者中心对应 Client ID .withClientToken("your_client_token") // 必须,开发者中心对应 Client Token .withServerUrl("https://your_server_url") // 必须,开发者中心 > 你的游戏 > 游戏服务 > 基本信息 > 域名配置 > API .withRegionType(TapRegionType.CN) // TapRegionType.CN:中国大陆,TapRegionType.IO:其他国家或地区 .build();TapBootstrap.init(MainActivity.this, tdsConfig);// 开发者必须至少依赖 `TapBootstrap`、`TapLogin`、`TapCommon` 以及 `LeanCloudObjc` 模块,并按照如下方式完成初始化:TapConfig *config = [TapConfig new];config.clientId = @"your_client_id"; // 必须,开发者中心对应 Client IDconfig.clientToken = @"your_client_token"; // 必须,开发者中心对应 Client Tokenconfig.serverURL = @"https://your_server_url"; // 必须,开发者中心 > 你的游戏 > 游戏服务 > 基本信息 > 域名配置 > APIconfig.region = TapSDKRegionTypeCN; // TapSDKRegionTypeCN:中国大陆,TapSDKRegionTypeIO:其他国家或地区[TapBootstrap initWithConfig:config];TapBootstrap 初始化方法会把直接初始化 TapLogin 模块,如果插件中包含 TapDB 并且 DBConfig.Enable = true,那么也会完成 TapDB 初始化。 这两个模块无需再次初始化。 FTUConfig Config;Config.ClientID = "your_client_id"; // 必须,开发者中心对应 Client IDConfig.ClientToken = "your_client_token"; // 必须,开发者中心对应 Client TokenConfig.ServerURL = "https://your_server_url"; // 必须,开发者中心 > 你的游戏 > 游戏服务 > 基本信息 > 域名配置 > APIConfig.RegionType = ERegionType::CN; // ERegionType::CN:中国大陆,ERegionType::Global:其他国家或地区FTapBootstrap::Init(Config);初始化的时候,必须填入 client_id、client_token 和 server_url,其中: client_id、client_token 信息可在 开发者中心 > 你的游戏 > 游戏服务 > 应用配置 查看。 server_url 请使用 HTTPS 协议,参考文档关于 域名 的说明。 接入功能TapSDK 提供了众多功能。请在初始化 SDK 后,根据项目需要,参考相应功能的文档,接入相应功能。 绝大多数游戏都会接入 TapTap 登录,所以我们推荐从这一功能开始。 接入 TapTap 登录请根据开发者指南:快速上手,接入 TapTap 一键登录 完成操作。 配置签名证书Android 和 iOS 应用需要在 TapTap 开发者中心进入你的游戏,依次选择 游戏服务 > 开发与构建 > TapTap 登录 配置应用的相关信息(如下图所示),否则 Android 应用测试登录功能时会返回 signature not match 报错信息,iOS 会返回 sdk_not_matched 报错信息,无法正常使用 TapTap 登录功能。 Android 签名处填写 MD5 值,详情可参考:如何获取 MD5 值。 接下来,就可以打包应用,测试 TapTap 登录功能了。 Android 代码混淆TapSDK 已经做了混淆处理,再次混淆会导致不可预期的错误,请在项目的混淆脚本中添加如下配置,跳过对 TapSDK 的混淆操作: -keep class com.tds.** { *;}-keep class com.taptap.** { *;}-keep class com.tapsdk.** { *;}-keep class tds.androidx.** { *;}如果使用到基于数据存储的云服务,比如内建账户方式登录则需要额外添加 数据存储 相关的混淆代码。 打包Android 或 iOS 请按通常的 Android APK 或者 iOS 应用打包流程操作即可。这里介绍一下 Unity 打包流程: 打包 APK第一步,配置 package name 和签名文件: 第二步,检查 File > Build Settings > Player Settings > Other Settings > Target API Level 版本,当 API Level 小于 29 时,需要配置 manifest,在 application 节点添加: tools:remove="android:requestLegacyExternalStorage"这是因为 SDK 内部默认配置了 android:requestLegacyExternalStorage = true,当 targetSdkVersion < 29 时会报错 Android resource linking failed。 导出 Xcode 工程需要配置 icon 和 BundleID: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |