热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity游戏接入TypeSDK集成笔记

前言:这是一个unity小程序猿使用typesdk给公司项目接入各渠道游戏联运sdk的使用笔记,说是笔记是因为从接触这个聚合工具到接入项目中并且将项目上线到渠道(目前已上线oppo,huawei,
前言:

这是一个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 确定12都没问题时,首先需要检查对应渠道的java代码(基本上都是java里写的参数名和管理平台这的参数名不对,需要改java代码),其次没问题时再检测AndroidManifest.xml文件,有些渠道是需要在xml文件中配置appidappkey啥的,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

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

 

报错3//TODO 待补充~~

 

5 服务器收不到支付回调

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

解决办法:

1 先去linux服务器上的

 

 

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

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

 

,通过查看该脚本中的

 

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

心得:

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

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

 


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
author-avatar
潘PanPanPq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有