游戲項目尾聲,做下總結: 1.sharesdk微信微博分享(1) 如果接入眾多渠道,選用服務端獲取代碼配置參數的方式(微信:app_id 微博: app_key, app_secret)代碼配置2.x版本需註意setPlatformConfig設置參數時Android和ios設置key不同(Andr
游戲項目尾聲,做下總結: 1.sharesdk微信微博分享
(1) 如果接入眾多渠道,選用服務端獲取代碼配置參數的方式(微信:app_id 微博: app_key, app_secret)代碼配置2.x版本需註意setPlatformConfig設置參數時Android和ios設置key不同(Android:AppId AppKey AppSecret; IOS:app_id app_key app_secret)
微博一個應用Android支持多套包名簽名分享,IOS需升級weibosdk到3.0以上最新版,通知微博應用後臺合併支持多套bundleid,即:微信需要為每個渠道申請一個微信應用(每個開發者賬號可申請10個應用,每個應用只支持一套bundleid和一套packagename簽名)
(2) Android回調文件WXEntryActivity.java必須在包名packagename指定目錄下才能正常監聽分享是否成功,註意代理方如果再次接入含微信sdk(如微信登錄)WXEntryActivity.java文件會有衝突,目前做法是保留登錄sdk此文件,此渠道點分享預設分享成功。
(3) 新浪微博分享網路圖片需要申請高級許可權:微博高級寫入介面,否則報錯
(4) 微博應用未審核通過時,可添加測試賬號進行測試
(5) 微博只支持web授權可減少sdk體積(不支持客戶端sso授權)
(6) ios9相容適配
(7) 截屏出現白屏情況:URLayou裁剪方式相關,修改裁剪方式對listview等控制項影響。
(8) IOS切包需註意除了代碼配置appid等信息,URLSchemes需與微信微博一一對應(微博web授權可不設置)。
(9) 其他問題可以咨詢Mob.com 移動開發者服務平臺賬號:938055289。 2.Andorid Bugly崩潰統計分析
(1) 上報debug內測版本和release正式版本分開
(2) 及時上傳符號表,給so添加版本號,正式版備份so文件(proj.android/obj/local/armeabi/libcocos2dcpp.so)備用,可用addr2line工具配合符號表使用。 (3) 加入崩潰自定義日誌,如切入後臺前臺和轉場。 (4) generic / generic_x86 設備機型為模擬器,對OpenGL支持有問題:eglChooseConfig failed。 (5) Bugly官方交流群:130979883 3.Android ndk-gdb調試
(1) 配置環境變數(ndk和sdk,ant打包需配置ant),Application.mk文件配置需增加NDK_TOOLCHAIN_VERSION和APP_ABI。
(2) 目前調試只能用支持armeabi的機型,魅族mx5(x86)不支持。
(3) NDK_DEBUG編譯,啟動apk,開啟ndk-gdb可斷點調試。 3.第三方機型測試 (1) 可設置自定義key輸出統計,比如統計場景平靜幀頻,轉場時間。 (2) TestIn測試建議使用TestIn自己的崩潰sdk,屏蔽Bugly。 (3) 特定機型出現的問題可配合優測雲手機遠程測試。 4.UI動態
(1) 動態編輯器冗餘數據可刪除。
(2) widget不支持遞歸child透明度漸變,需修改遍歷支持。
(3) UI界面頁簽數量和是否開放對動態的影響(頁簽數量越增加越多尺寸縮小)。
(4) 動態對其他模塊影響,如引導,提供動態執行完畢介面。
(5) 同時播放兩個UI動態時動態覆蓋問題,需要每個動態都是一個獨立單元。 5.DataEye
(1) 客戶端服務端渠道名稱統一使用渠道id,然後設置別名。
(2) 虛擬幣統計系統錯誤:數據量大,可選取單日查看,仍然錯誤,嘗試清理瀏覽器緩存。
(3) 註意客戶端與服務端數據統一:渠道,區服等。
(4) 測試渠道正式包時,避免TestIn測試數據統計到正式渠道,可修改版本號等方式。 6.推送
(1) 本地定時推送使用AlarmManager設置鬧鐘並監聽重啟,重啟後重新設置鬧鐘。
(2) 網路推送:信鴿推送需添加支持多包名推送。 7.安卓遇到的一些其他的坑 (1) ANR:不要在主線程過多耗時操作,不要在MainAvitivity onCreate里過多初始化各種sdk等操作。 (2) 子線程直接更新UI閃退:使用handler處理。
(3) 子線程調用jni閃退:
(4) 遇到小米1機器上骨骼動畫不斷閃爍:2.3版本庫bug,修改CCTextureAtlas::initWithTexture 方法,如果時Android平臺m_uCapacity=32; (5) 非全屏狀態鍵盤彈出和收回的監聽addOnGlobalLayoutListener: (6) 文字鏈接按下時會不同觸發moved事件,需要做下限定,如判定下_touchStartPos和_touchMovePos的距離超過10像素才判定為moved,否則很難監聽到ended文字鏈接很難點擊到。 (7) 資源讀取,Android無法讀取apk壓縮包里的zip中文件,讀取方式拷貝到到寫路徑路解壓或直接二進位讀取。 (8) launchMode為預設點擊本地推送消息會重新開啟游戲,singleInstance可能會銷毀sdk登錄框Activity造成卡在登錄步驟。 (9) 渠道提示更新等是根據versionCode,版本更新versionCode必須增加。 (10) 同時播放多個音效時有音效丟失情況修改設置:Cocos2dxSound.java MAX_SIMULTANEOUS_STREAMS_DEFAULT (11) jni介面,c++調用java方法,返回值要匹配(Android5.0以上不匹配必然閃退)。 8.反編譯調試渠道包出現問題而母包不出現的問題,可以省略來回切包的步驟 (1) 對應版本本地編譯debug帶log版本(-DCOCOS2D_DEBUG=1),同時添加調試日誌,反編譯渠道包替換so文件,重新打包簽名測試。