Unity遊戲接入TypeSDK集成筆記

前言:

這是一個unity小程序猿使用typesdk給公司項目接入各渠道遊戲聯運sdk的使用筆記,說是筆記是由於從接觸這個聚合工具到接入項目中而且將項目上線到渠道(目前已上線oppo,huawei,aliuc)也就一禮拜左右,不少東西也沒有弄懂,如今由於項目已經上線了悠閒點了,就想將這期間碰到的一些問題(坑)以及接入的一些心得體會記錄下來,因而有了本文。。畢竟也是處於學習階段,因此文章有啥問題麻煩你們直接提出來,共同窗習~~java

TypeSDK簡單介紹:

typesdk用於公司【遊戲項目】須要接入多渠道sdk時的能夠統一接入各渠道並一鍵打包安裝的工具,免費,開源,同時打包不是反編譯!!注意:是開源!固然,核心部分仍是不開源的:打包的代碼目前好像沒有看到~linux

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

優勢:

1 不經過反編譯打包:這個很關鍵,目前不少主流渠道都禁止遊戲接入第三方聚合sdk,而目前市面上的不少sdk都是經過反編譯從新打包生成的,這樣有挺大概率審覈失敗,而typesdk是先要你導出項目,而後經過它本身的方式再打包,基本上避免了會被檢測到項目接入了第三方聚合sdk而審覈失敗的問題。web

2 開源:出現大部分的問題均可以本身修改代碼,等到了解整個框架源碼後,你就能夠將他變成本身公司的渠道接入工具了。小程序

集成步驟與體會:

1 安裝服務端:

按照官網提供的技術文檔-安裝服務器http://www.typesdk.com/documents/install-4,具體就略過了,本人是客戶端程序,本篇也大部分也是客戶端的視角。服務器

2 安裝打包工具:

打包工具安裝在新系統上,具體步驟如http://www.typesdk.com/documents/install-5,也不詳說,注意點就是須要在新系統上(老系統沒有一個機子裝成功了~微信

打包工具的打包邏輯:

1 首先以上傳的母包(unity導出的android包)爲基礎,app

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中的全部參數能填的儘可能填,不要空着,空着不填容易出問題,並無文檔上寫的傳空就行那麼好。。。)

相關文章
相關標籤/搜索