升級IOS8遊戲上傳自定義頭像功能失效的問題

爲了支持arm64,以前已經摺騰了好久,昨晚打包準備提交蘋果審覈時,測試那邊的同事反饋說遊戲上傳自定義頭像功能不可用了。html

遊戲上傳自定義功能的簡介:卡牌遊戲最初是《比武招親》中有一個充VIP以後就可以使用了上傳自定義功能的特權,咱們的遊戲就「複製」了該功能。ios

 

具體實現就是點擊遊戲內換自定義頭像的按鈕後,調用不一樣平臺相應的方法,獲取用戶選擇的圖片數據,而後將圖片裁剪再傳給後臺保存至特定的目錄下。app

 

測試設備是ipad air2,系統版本IOS 8.0.1,點擊遊戲內的按鈕直接無響應了。框架

第一個問題:點擊後無響應學習

緣由是 UIActionSheet 的showInView方法的參數上,以前設置的是self.view.window (NSInvalidArgumentException, reason:Sheet can not be presented because the view is not in a window)測試

第二個問題:點擊選擇相冊按鈕後無下文了ui

這裏也有二個問題,一是顯示的按鈕只有一個「選擇相冊」google

緣由是UIActionSheet在ios8中已經被棄用了(點擊查看詳情>>),使用UIAlertController進行替代,這裏有兩篇文件介紹它:日誌

UIAlertController in IOS8>>htm

UIAlertController>>

 

跟蹤代碼後,發現它在調用UIPopoverController的presentPopoverFromRect方法後,直接就調用了popoverControllerDidDismissPopover方法

 

經過搜索「ios8 ipad UIPopoverController 」找到了這個連接(UIPopoverController not presenting in iPad iOS 8),一看到stackoverflow.com就感受到有救了,今天不用再通宵了…

 

從元旦放假回來上班第一天開始,算今天已經連續加了7天班,遇到的幾個問題都特別陌生,無力感很重也很沮喪,沒什麼頭緒,感受無從下手,曾經有個問題二三天的時間我看着那個崩潰卻找不到動手的地方。對那個領域或者那個東西太過陌生,並且google正好被牆掉了訪問起來斷斷續續的。如今問題被解決了,回想起來,運氣成分真的很大。由於不少問題我跟測試他們講,再讓我解那個bug,我不會想到那個地方上去。

 

最近一次更新功能以後,IOS設備上的重啓按鈕,點擊後遊戲直接閃退了,機率比較高。斷點以後,望着屏幕上crash的地方百思不得其解,底層是cocos2d-x 2.x版本,上層是用C++包裹的一層,而後上面又是Lua包了一層,查堆棧也實在找不到哪一個地方調用了特殊的什麼東西,重啓那塊邏輯代碼又沒動過,真是鬱悶。前一夜搞到大半夜放棄了,回家睡覺都在作夢,第二早上都查了一上午,仍是沒找到。中午吃過飯,再看那個crash的地方 cocos2d-x中的CCDictionary.cpp  objectForKey方法的斷點掛掉了

斷言的這行代碼直接掛掉了,再往上一個調用,來源於CCINode.cpp,網上又搜索了一下,咱們使用的代碼是將網上的代碼修改了一下,也沒發現問題,貌似無解了。當我準備放棄的時候,忽然卻想到新功能中主界面有一個功能上面有調用swf進行特效的顯示,而後我看了一下它被隱藏了。那我想既然隱藏了,那就不要讓它play嘛,結果試了一下,嗯,不崩潰了!好神奇,而後代碼又調回去,試了一上,好了!竟然好了! 日誌顯示其實遊戲已經啓動了,都開始請求CDN上的資源了,只是界面還停留在重啓那個界面,但崩潰的點卻掛在了CCDictionary.cpp中。

 

換成IOS8.1的SDK後,上傳頭像功能不可用了,搜索了很久發現都跟本身的問題對不上,當輸入特定的關鍵字時出來的第一條就是本身想要的,結果幾分鐘就把問題解決了,但找相應答案以前卻已經花了將近4個小時…

 

從JavaScript網頁開發,到ActionScript網頁遊戲開發,再到C++的手遊開發,一路走來,感受真是摸着石頭在過河,移動平臺的版本升級之快,讓我等開發者有切膚之痛。我真但願,有一天我能主導基於HTML5的遊戲框架並應用於型項目中,我指望這一天,風水輪流轉嘛。端遊 –>  頁遊 –> 手遊,今日之手遊開發模式猶如昨日之端遊。

 

做爲手遊開發人員,要學習和掌握的知識的比較廣:C++底子要用吧,Lua至少能用的很順手吧,Android要比較熟悉吧(否則怎麼接SDK,修一些bug呢),IOS也是同樣,否則就像我常常面臨的問題同樣,各平臺上的鍵盤、上傳頭像等問題就像一座大山擋在了你的面前。沒有比較紮實的基本功,很難應付的了一個接一個的問題,這還不談遊戲具體某些功能實現上的問題。路漫漫其修遠兮,吾將上下而求索!

相關文章
相關標籤/搜索