前言:

这是一个unity小程序猿使用typesdk给公司项目接入各渠道游戏联运sdk的使用笔记,说是笔记是因为从接触这个聚合工具到接入项目中并且将项目上线到渠道(目前已上线oppo,huawei,aliuc)也就一礼拜左右,很多东西也没有弄懂,现在因为项目已经上线了清闲点了,就想将这期间碰到的一些问题(坑)以及接入的一些心得体会记录下来,于是有了本文。。毕竟也是处于学习阶段,所以文章有啥问题麻烦大家直接提出来,共同学习~~

TypeSDK简单介绍:

typesdk用于公司【游戏项目】需要接入多渠道sdk时的可以统一接入各渠道并一键打包安装的工具,免费,开源,同时打包不是反编译!!注意:是“开源”!当然,核心部分还是不开源的:打包的代码目前好像没有看到~

官方地址:http://www.typesdk.com/

优点:

1 不通过反编译打包:这个很关键,目前很多主流渠道都禁止游戏接入第三方聚合sdk,而目前市面上的很多sdk都是通过反编译重新打包生成的,这样有挺大几率审核失败,而typesdk是先要你导出项目,然后通过它自己的方式再打包,基本上避免了会被检测到项目接入了第三方聚合sdk而审核失败的问题。

2 开源:出现大部分的问题都可以自己修改代码,等到了解整个框架源码后,你就可以将他变成自己公司的渠道接入工具了。

集成步骤与体会:

1 安装服务端:

按照官网提供的技术文档-安装服务器http://www.typesdk.com/documents/install-4,具体就略过了,本人是客户端程序,本篇也大部分也是客户端的视角。

2 安装打包工具:

打包工具安装在新系统上,具体步骤如http://www.typesdk.com/documents/install-5,也不详说,注意点就是需要在新系统上(老系统没有一个机子装成功了~)

打包工具的打包逻辑:

1 首先以上传的母包(unity导出的android包)为基础,

2 在打包工具下的文件路径C:\TypeSdk\TypeSdkPackge\typesdk\share\SDK\Channel_SDK 内找到所要打包的渠道的文件路径,合并里面的资源以及xml文件

3 接着合并C:\TypeSdk\TypeSdkPackge\typesdk\share\SDK\Type_SDK 路径下对应版本的typesdk 的资源以及xml文件

4 最后合并C:\TypeSdk\TypeSdkPackge\typesdk\share\SDK\Channel_SDK\GAGame 路径下的文件,这个文件为什么要合并暂时不太清楚,根据版本名字我猜测是

,为了合并这个,里面大概是一些tencent,支付宝,wx,银联等sdk资源,目前发现不合并这个也不会影响打包。(华为的包需要去掉这个,不然审核会不通过,具体看下面错误2)

3 设置打包管理平台:

打包工具安装好,可以生成一个web版的出包管理平台,方便我们上传母包,添加游戏,配置渠道参数,选渠道打包。

管理平台发现到的问题(坑)提示:

坑1: 签名keystore只能在添加游戏时设置好,

实测,在游戏已添加成功后再修改keystore时没用,打包的时候会报找不到最先那个xxxxx.keystore文件的错。故最好在建立游戏的时候确定好签名keystore,不然等渠道参数配置好了又要修改keystore时,渠道参数又要重新填一遍。。

坑2:

在游戏添加后,就可以在游戏的后面的接入渠道按钮里面新增渠道参数

注意,新增渠道或者修改过渠道参数后都需要点击

同步到服务器,这里要说的坑是各个渠道的参数配置,

渠道参数配置单里的说明都不一定正确,有一些key的说明还是错的,所以当你不清楚填的是否正确时,最好去打包工具那里查看该平台的sdk源码,就是一些java文件,一切以java文件中的参数意思来配置。当你确定java配置没问题后,那可能就需要去linux服务器系统上看一下服务器的代码,是否有用到该参数,参数意思不对的话也需要改。具体有哪里就不说了,太多了,都是出现问题就一个个去看源码,然后改过来。基本上各个渠道都有问题。。。

坑3:

渠道参数配置时,记得开启右上角的

,不然有些参数看不到。同时,参数后面的

这些选项一定要看清楚勾好,新建的时候默认是不勾的。。有些参数要是没勾到就可能在打包的时候打不进去,然后唤起sdk时报参数错误,或者找不到该参数问题。

渠道参数修改完之后,需要点击

写入文件,同时执行最前面的同步到sdk服务器步骤。

总结一下,sdk出错后,你需要:

1 参数要仔细检查是否填错

2 参数后面的勾要看需求勾好(宁多勾毋不勾)

3 确定1和2都没问题时,首先需要检查对应渠道的java代码(基本上都是java里写的参数名和管理平台这的参数名不对,需要改java代码),其次没问题时再检测AndroidManifest.xml文件,有些渠道是需要在xml文件中配置appid,appkey啥的,typesdk是将这些参数通过动态获取的方式填入,你可以是指直接填进去,可能会有意想不到的结果。

接入客户端:

http://www.typesdk.com/documents/typesdk-use-5

按照文档,将u3dtype提供的untiydemo导入到工程中,导入后找到这个脚本

所有sdk唤起都在这个U3DTypeSDK脚本里,U3DTypeEventListener是用来监听sdk回调事件的,使用起来还是挺方便的。这里一般没什么问题,要注意的一个点是这两个脚本自带的MonoBehaviour单例是否符合你们项目的单例使用规则,不符合的话注意修改时记得给单例挂的物体名字赋原始值。还有一点就是对sdk的所有调用尽量放在MonoBehaviour主线程中,在子线程或者非MonoBehaviour线程中容易出现闪退问题,adt报错如下:

07-17 14:18:38.847: E/dalvikvm(4604): JNI ERROR (app bug): accessed stale local reference 0x1d200001 (index 0 in a table of size 0)

07-17 14:18:38.847: E/dalvikvm(4604): VM aborting

07-17 14:18:38.847: A/libc(4604): Fatal signal 6 (SIGABRT) at 0x000011fc (code=-6), thread 4853 (GC_start_routin)

typeSdk接入后的常见问题:

1 新手机(如安卓8.0以上)的手机启动时黑屏,老点的手机(如6.0以下)就正常玩

原因:

typesdk中的安卓xml文件默认targetversion=25,而目前手机上的targetversion<23的,安装的时候需要的权限默认都是允许的,但是>=23的,所需要的危险权限是默认拒绝的,存储权限就是危险权限一类。所以当游戏需要这个权限的时候,由于权限是没有的,而且没有进行权限申请,从而导致了游戏黑屏。

解决办法:

1 这其实是unity5.x的一个bug,我们项目是5.2.4f1,目前高版本的unity已经修复这个问题了。所以可以换版本的项目就可以升级到新版本,如unity2017,就可以解决该问题。

2  升级不了版本的项目可以将xml文件中的targetversion设置为23以下,我们是改成21了,也算是解决这个问题了。

2 上线审核时,如华为渠道,审核失败原因是项目中有接入支付宝,银联,微信支付。

原因:

打包工具打包时,会将打包工具安装包中的C:\TypeSdk\TypeSdkPackge\typesdk\share\SDK\Channel_SDK\GAGame 文件下的东西都打进去,而在GAGame文件夹里的libs资源路径下,上面的各种支付都有,同时xml文件中也配置了上述支付的activity。

解决办法:

将GAGame改个名字就不会打入改文件下资源,同时将导出的母包中的xml文件中有关上述支付的activity声明去掉。不会影响正常打包。

3 母包zip上传失败

原因:一般是因为压缩文件路径错了

解决办法:

导出包后的文件夹里有两个文件,一个是游戏设置的包名文件,一个是unity-android-resources

只需要将包名文件改成Game,再按要求删掉Game里面的一些文件,然后再将Game文件压缩成Game.zip,一般就没问题了。

4 渠道游戏打包失败

报错1:找不到unity-android-resources

这个问题应该是上面压缩母包的时候没有将unity-android-resources压缩进去造成的,但是我试过将该文件放到任意位置压缩,都上传不成功,因此我选择不压缩该文件,同时将Game文件里的project.properties文件中去掉对unity-android-resources的资源引用,改成

报错2:找不到androidxxxxxxx ,如第一次打包YYB渠道时会提示没有找到android8

这种问题是因为你的打包软件所在的系统没有安装android8,YYB渠道默认是需要android8才能打包,因此在打包软件对应的sdk上安装android8即可

报错3://TODO 待补充~~

5 服务器收不到支付回调

原因:typesdk linux服务器上接收到第三方回调后转发的回调地址不正确,或者linux服务器上的接收逻辑没有跑通

解决办法:

1 先去linux服务器上的

logic脚本中查出linux服务器是否有收到第三方(华为,oppo等)的支付回调,没有收到的话就检查在出包管理平台里的渠道配置那检查支付回调地址是否填错。一般都是填错或者后面的选项没有勾导致的。

2 logic能收到回调,游戏服务器收不到回调,这个时候就要检查对应渠道的逻辑脚本是否有问题,例如uc渠道的就是

,通过查看该脚本中的

方法(断点调试或者log调试),可以找到原因。

心得:

1 很多时候是验证失败,我们目前是直接去掉typesdk的验证,重新写了一套最基本的验证。

2 还有种可能是回调错了,有个渠道的支付回调参数notifyurl 赋值的却是游戏服务器生成的订单信息里的verifyurl(订单查询回调地址),因此当你游戏服务端生成订单的时候,如果不填订单查询回调,或者填了,于是回调发到你订单查询回调地址去了。因为目前我们是没有接入查询订单的接口,于是将查询回调填成支付回调了。(提醒:typesdk中的所有参数能填的尽量填,不要空着,空着不填容易出问题,并没有文档上写的传空就行那么好。。。)

转载于:https://www.cnblogs.com/fengHC/p/9406347.html

Unity游戏接入TypeSDK集成笔记相关推荐

  1. 基于傅老师unity游戏教学的学习笔记(EX)将PMX格式的MMD模型导入unity并使用

    为了学习unity,开始游戏制作大业,我选择在bilibili上寻找unity游戏教学视频并边做边学,以此系列博客作为笔记. (EX)将PMX格式的MMD模型导入unity并使用 想做3D游戏,优秀的 ...

  2. 最近想给自己的Unity游戏接入广告

    最近想给自己的游戏接入广告,就记录下了一篇很优秀的博客 需要的朋友可以看看 https://blog.csdn.net/qq_36622009/article/details/104818876

  3. 【steam接入】如何将unity游戏接入steam(steamworks)

    使用Steamworks.NET,请确保成为steam的开发者(要在steam提交游戏,需要一次性缴纳100美元费用) sdk地址:http://steamworks.github.io/instal ...

  4. Unity游戏接入百度移动广告

    本篇文章我们讲解利用百度 Unity Plugin这个插件,这个插件使用很简单 1. 新开一个Unity工程,导入百度 Unity Plugin这个插件包 2.导入后将baidudemo.cs这个类文 ...

  5. Unity 游戏黑暗之光笔记第一章 完善场景

    Unity 游戏黑暗之光笔记 第一章 完善场景 1. 导入资地形.地貌资源,新建场景,导入地形.地貌prefab 2. 设置相机与视野匹配 选中主摄像机,点选菜单栏中GameObject > A ...

  6. Unity 游戏黑暗之光笔记第五章 背包系统的实现

    Unity 游戏黑暗之光笔记 第五章 背包系统的实现 详细过程参考,笔者一直有BUG--导致后面的很多内容没法写全 1.开发功能按钮 注意Anchors的位置,可以让图标在窗口变化时保持相对位置不会变 ...

  7. Unity 游戏黑暗之光笔记第四章 任务系统的实现

    Unity 游戏黑暗之光笔记 第四章 任务系统的实现 具体步骤可以看RPG游戏<黑暗之光>流程介绍与代码分析之(四) 注意要点 在把鼠标放在任务面板上点击时,为了让角色不移动,在Playe ...

  8. Unity游戏框架学习笔记——03基于观察者模式的事件中心

    Unity游戏框架学习笔记--03基于观察者模式的事件中心 基于观察者模式的事件中心 一如既往指路牌:https://www.bilibili.com/video/BV1C441117wU?p=5. ...

  9. 《Unity 游戏设计与实现 南梦宫一线程序员的开发实例》学习笔记01

    第0章 Unity概要 这是我的Unity初体验,之前没有接触过Unity引擎,但是确实很想学习,就先阅读了一点Unity Manual.熟悉了一下软件界面各窗口功能后,觉得Unity Manual ...

最新文章

  1. csu 1804 有向无环图
  2. Hashtable和HashMap的区别:
  3. webdriver For selenium
  4. 判断线程是否执行完毕_Java并发编程 | 线程核心机制,基础概念扩展
  5. OutOfMemory (OOM)的类型与检测
  6. R开发(part1)--R语言知识体系结构
  7. gearman mysql持久化_gearman + mysql方式实现持久化操作示例
  8. 集成显卡与独立显卡的区别
  9. 果然十三香!苹果全球销量超越小米重回第二,第一还是它
  10. IDEA 隐藏编辑器顶部 Tab 栏
  11. cuda11+pytorch安装
  12. 达梦数据库SQL语句执行
  13. k8s的优势和部署模式
  14. 深度学习-22:信息论和信息熵
  15. Aggressive cows 二分
  16. c语言 常量整数,C语言的整型常量
  17. C语言BT软件项目总结
  18. 对VC 一些常见问题的整理
  19. 【Canvas】js如何设置canvas绕图形中心旋转
  20. 【Flink】 is not serializable. The object probably contains or references non serializable fields

热门文章

  1. AR VR或将彻底变革广告营销行业
  2. 关于提BUG的一点思考以及工作中总结的规范
  3. python之twisted模块安装
  4. linux help
  5. CMSIS-SVD Schema File Ver. 1.0
  6. Qt:QListWidget的item上实现右键菜单
  7. 许晴×××汤的营养价值
  8. Sqlite大数据量查询优化比较-转
  9. [Python] L1-018. 大笨钟-PAT团体程序设计天梯赛GPLT
  10. 计算机网络 时延、发送时延、传输时延、处理时延、排队时延、时延带宽积