更新唤起开发指南
本文档只适用于国内版本,海外版本请参考 文档
环境要求
- Unity
- Android
- iOS
- UE4
- TapSDK 3.23.0 及以上版本
- Unity 2019.4 或更高版本
- Android 5.0(API level 21)或更高版本
点击展开 Unity 2022.3 之前的版本升级 Gradle 版本
为了将 Gradle 版本和 Android Gradle Plugin 版本对应,需要更新 Gradle 版本,下载 6.7.1 版本的 Gradle,解压后放到自定义的文件夹中,同时不勾选 Unity 中的 Preferences -> External Tools-> Android -> Gradle Installed with Unity(recommend),改为选择解压后 Gradle 文件夹的位置,如 <some path\>/gradle-6.7.1。
另外, Unity 更新唤醒模块会自动更新项目中使用的 Android Gradle Plugin 版本,如果您需要手动更改或者查看,可以在 Project Settings -> Player -> Android Tab -> Publish Settings -> Build,然后勾选Custom Base Gradle Template
将以下更改应用于生成的这个文件: Assets/Plugins/Android/baseProjectTemplate.gradle
修改文件内容:
dependencies {
// 将版本修改至少为 4.2.0
classpath 'com.android.tools.build:gradle:4.2.0'
}
- TapSDK 3.23.0 及以上版本
- Android 5.0(API level 21)或更高版本
- 受限于苹果政策,iOS 平台的 TapTap 客户端不提供游戏更新功能
- 安装 UE 4.26 及以上版本
- iOS 12 或更高版本
- Android 5.0(API level 21)或更高版本
- macOS 10.14.0 或更高版本
- Windows 7 或更高版本
支持平台:Android / iOS / Windows / macOS
权限说明
- Unity
- Android
- iOS
- UE4
该模块依赖权限如下:
| 权限 | 使用目的 | 权限申请时机 |
|---|---|---|
| 网络权限 | 用于正常网络访问 | 用户首次使用该功能时会申请权限 |
| 安装 APK 权限 | 用于安装 Tap 客户端 | 用户首次使用该功能时会申请权限 |
同时该模块也会访问设备已安装的 Tap 客户端信息,所以接入 SDK 后将在应用 AndroidManifest.xml 中添加如下配置:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<queries>
<package android:name="com.taptap" />
<package android:name="com.taptap.global" />
</queries>
集成前准备
使用更新唤起功能前提需要通过 TapTap 开发者中心 > 商店 > 游戏资料 > 商店资料 中已经上传 APK, 发布设置为 立即上线 并通过 审核(开发者包如果暂时不想对外,发布状态选 敬请期待 或者 预约)。
SDK 获取
- 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.update":"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"]
}
]
GitHub 安装
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#3.29.4",
"com.taptap.tds.update":"https://github.com/TapTap/TapUpdate-Unity.git#3.29.4",
"com.tapsdk.androiddependencyresolver":"1.2.1",
}
"scopedRegistries": [
{
"name": "TapSDK",
"url": "https://nexus.tapsvc.com/repository/npm-registry/",
"scopes": [
"com.tapsdk",
"com.taptap"
]
}
]
在 Unity 顶部菜单中选择 Window > Package Manager 可查看已经安装在项目中的包。
方法二:手动导入
-
在 下载页 找到 TapSDK Unity 下载地址,分别下载
TapSDK-UnityPackage.zip。然后请点击下载
TapTap_AndroidDependencyResolver.unitypackage。 -
在 Unity 项目中依次转到 Assets > Import Packages > Custom Packages,从解压后的
TapSDK-UnityPackage.zip中,选择希望在游戏中使用的 TapSDK 包导入,其中:TapTap_Common.unitypackageTapSDK 基础库,必选。TapTap_Update.unitypackageTapTap 唤起更新库,必选。TapTap_AndroidDependencyResolver.unitypackage必选。
-
如果当前项目已集成
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>
在 下载页 获得 TapSDK,添加 TapUpdate 和 TapCommon 模块。
repositories{
flatDir {
dirs 'libs'
}
}
dependencies {
...
implementation (name:'TapUpdate_3.29.4', ext:'aar')
implementation (name:'TapCommon_3.29.4', ext:'aar')
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'androidx.core:core:1.6.0'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
}
受限于苹果政策,iOS 平台的 TapTap 客户端不提供游戏更新功能
安装插件
- 下载 TapSDK UE4,TapSDK-UE4-xxx.zip 解压后将
TapUpdate、TapCommon文件夹 Copy 到项目的Plugins目录中 - 重启 Unreal Editor
- 打开 编辑 > 插件 > 项目 > TapTap,开启
TapUpdate模块
添加依赖
在 Project.Build.cs 中添加所需模块:
PublicDependencyModuleNames.AddRange(new string[] { "Core",
"CoreUObject",
"Engine",
"Json",
"InputCore",
"JsonUtilities",
"SlateCore",
"TapCommon",
"TapUpdate",
});
导入头文件
#include "TapUpdate.h"
初始化
以下两种初始化方式任选其一。
TapSDK 初始化
如果你已经完成内建账户系统 Tap 登录的初始化,这里只需要引入更新唤起模块,不需要其他额外处理。
更新唤起单独初始化
根据在开发者中心的应用配置,开发者调用如下接口:
- Unity
- Android
- iOS
- UE4
using TapTap.Update
TapUpdate.Init("clientId", "clientToken");
import com.taptap.services.update.TapUpdate;
TapUpdate.init(activity, "clientId", "clientToken");
受限于苹果政策,iOS 平台的 TapTap 客户端不提供游戏更新功能
FTapUpdate::Init(TEXT("clientId"), TEXT("clientToken"));
参数说明
| 参数 | 描述 |
|---|---|
| clientId | TapTap 开发者中心对应应用的 Client ID |
| clientToken | TapTap 开发者中心对应应用的 Client Token |