常见问题
综合
TDS 云服务带高防吗?
TDS 可以防护小规模的攻击,开发者无需为此承担额外的费用。 独占游戏在独占期间 TDS 免费提供高防服务,开发者需要事先和 TDS 方面沟通配置细节。 其他游戏,TDS 可以协助接入 IaaS 服务商的高防,开发者需要承担相应的费用(IaaS 服务商会按高防带宽收费),详询商务。
请问同一身份证实名认证的账号是否有上限
目前 TapTap 的要求是同一个身份证号最多只能实名 5 个 TapTap 账号,对于游戏账号实名没有限制。
如何获取 Android 应用的 MD5 值?
一、通过 APP 工具获取
当只有 APK 文件包时,为了正确填写签名 MD5 值,可以使用如下的工具进行获取:GenSignatureMD5,工具使用方式:使用正式的签名证书对游戏应用进行签名打包,然后将 APK 包安装到手机上。与此同时,将 GenSignatureMD5 工具也安装到同一部手机上,然后打开该工具输入游戏包名就可以得到签名 MD5 值。
二、通过 Android Studio 获取
通过 Android Studio Terminal 输入以下命令获取:
keytool -exportcert -alias {alias} -keystore {storefile} | openssl dgst -md5
或者使用如下命令获取:
./gradlew signingReport
就可以在命令窗口看到签名文件的信息,包括了 SHA1 值和 MD5 值。
除了以上方法还可以使用 Android Studio 自带的 Gradle Tasks 查看,双击下图中的 signingReport 后调试窗口会输出 MD5 值。
注意,运行 signingReport 调试窗口输出的 MD5 值带冒号分隔符,绑定到开发者中心时需要手动删除冒号。
TapTap 开发者中心绑定 MD5 格式举例:
正确格式:6EB4347CF9C098BE1C8D965D539C42E2
错误格式:6E:B4:34:7C:F9:C0:98:BE:1C:8D:96:5D:53:9C:42:E2
如果右侧 Gradle 面板没有 Gradle Tasks 选项卡,在设置中关掉下图所示选项,重新 Sync Gradle,即可看到 Gradle Tasks 选项卡。
Android 上 TapSDK 和 B 站 SDK 引用的 okhttp 版本冲突,怎么办?
TapSDK 现在自动包含了 LeanCloud 核心 SDK,LeanCloud SDK 依赖如下几个基础库:
- com.squareup.okhttp3:okhttp:4.7.2
- com.squareup.retrofit2:retrofit:2.9.0
- io.reactivex.rxjava2:rxjava:2.2.19
有开发者给我们反馈,B 站游戏 SDK 是以 aar 形式提供,里面附带了 3.9.0 版本的 okhttp library(至少在 5.4.0 版之前是如此),与 TapSDK 的依赖产生了冲突,会导致程序启动时报如下错误:
Caused by: java.lang.NoSuchMethodError: No static method get(Ljava/lang/String;)Lokhttp3/HttpUrl; in class Lokhttp3/HttpUrl; or its super classes (declaration of 'okhttp3.HttpUrl' appears in /data/app/
由于 B 站游戏 SDK 固定死了 okhttp 网络库版本,解决这个问题则需要 TapSDK 这里对 okhttp/retrofit/rxjava 等基础库进行降级处理。
开发者可以拷贝如下配置到应用的 build.gradle 的 dependencies
section 中:
build.gradle 的配置
implementation('com.taptap:lc-realtime-android:8.2.24'){
exclude group: 'com.taptap', module: 'lc-storage-android'
exclude group: 'com.taptap', module: 'lc-realtime-core'
exclude group: 'com.taptap', module: 'lc-storage-core'
}
implementation('com.taptap:lc-storage-android:8.2.24'){
exclude group: 'com.taptap', module: 'lc-storage-core'
}
implementation('com.taptap:lc-realtime-core:8.2.24') {
exclude group: 'com.taptap', module: 'lc-storage-core'
}
implementation('com.taptap:lc-storage-core:8.2.24') {
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
exclude group: 'com.squareup.retrofit2', module: 'retrofit'
exclude group: 'com.squareup.retrofit2', module: 'adapter-rxjava2'
exclude group: 'com.squareup.retrofit2', module: 'converter-gson'
exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
}
implementation("com.squareup.retrofit2:retrofit:2.3.0")
implementation("com.squareup.retrofit2:adapter-rxjava2:2.3.0")
implementation("com.squareup.retrofit2:converter-gson:2.3.0")
implementation("io.reactivex.rxjava2:rxjava:2.0.0")
implementation("com.google.code.gson:gson:2.8.6")
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
configurations {
all*.exclude group: 'com.squareup.okhttp3'
}
application id is empty
请确保 TapTap SDK 初始化代码在主线程,以避免此问题以及后续会出现的功能异常,例如登录过程中无法访问网络。
TapTap 客户端用户信息修改后不会通知游戏内用户信息修改。
TapTap 客户端不支持同步更新,但是当用户通过客户端登录成功后会返回 access_token
、mac_key
, 游戏可以本地缓存该份登录数据,
之后用户每次进入游戏的时候可以调用服务端认证接口进行一次查询用来同步用户信息。
GPB_** 符号冲突
iOS 3.29.4 开始将 ProtocolBuffers 依赖库从原 Common 依赖库中进行了拆分,当遇到该问题时,移除 LibProtocolBuffers.framework 依赖即可