開發(fā)中遇到的問題,分享給大家斟览,有則改之亦镶,無則加勉墅冷。
1. UIScrollView加了category之后導(dǎo)致的手寫輸入時崩潰的問題—— [UIKBBlurredKeyView candidateList]
上周更新的應(yīng)用晴弃,這周上線了掩幢,然后昨天旁邊的同事告訴我說,友盟上的崩潰信息上鞠,崩潰率1%點多了际邻,趕緊查查吧。
看了一下發(fā)現(xiàn)大部分的崩潰都是這個日志:[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance...芍阎,于是搜了一下
崩潰重現(xiàn):
切換到有輸入的地方世曾,點擊輸入,切換輸入法到手寫輸入法(系統(tǒng)的谴咸,第三方的沒事)轮听,然后輸入,輸入一個之后寿冕,第二個字就會崩潰蕊程。
原因:
是因為給UIScrollView加了個category,是用于處理點擊屏幕的事件的(觸摸屏幕回收鍵盤)驼唱,之前一直都是這么做的,也沒問題驹暑,又或者又問題也沒人反饋玫恳,??,估計是投訴無門啊优俘。京办。。帆焕。惭婿。而且我們測試的時候也沒有測試手寫輸入法,因為沒人會想到這還會有什么不同叶雹。蘋果自己也沒想到财饥,所以我們就上線了,然后就有崩潰了折晦。钥星。。這坑爹的
解決:
既然有這個問題满着,就要解決谦炒,而且用了這個category之后贯莺,最坑的地方在于,即使你沒有導(dǎo)入這個頭文件宁改,在其他輸入的地方也有可能會跟這個沖突缕探,從而崩潰。还蹲。爹耗。所以問題還是很嚴(yán)重地!;嗵堋鲸沮!
解決的方法很簡單,刪掉這個category锅论,換種方式實現(xiàn)回收鍵盤讼溺,具體參照這個博客[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance 0x177cc850,我就是這么改的最易。
2. webView加載網(wǎng)頁時出現(xiàn)了這個怒坯,NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
昨天給一個界面,新增一個入口藻懒,點擊跳轉(zhuǎn)一個網(wǎng)頁剔猿,需要把登陸狀態(tài)帶到網(wǎng)頁里,做好之后嬉荆,今天提測归敬,測試發(fā)現(xiàn)跳轉(zhuǎn)的網(wǎng)頁沒問題,但是不能添加到購物車鄙早,點擊網(wǎng)頁下面標(biāo)簽中的個人中心沒反應(yīng)汪茧。。限番。
定位原因:
看看安卓的顯示如何舱污,是否能跳轉(zhuǎn),都正常弥虐。扩灯。。霜瘪。珠插。
然后開始排查,
a. 是不是登陸狀態(tài)沒有傳到網(wǎng)頁里粥庄;
b. 是不是手機的問題丧失,這個網(wǎng)址直接從瀏覽器能否打開
這兩個排除之后,沒辦法惜互,
c. 單步來打印布讹,看看能夠正常跳轉(zhuǎn)的網(wǎng)址和不能跳轉(zhuǎn)的有什么不一樣琳拭。
還真有不一樣的地方,能夠正常跳轉(zhuǎn)的都是http的請求描验,而個人中心的本來也是http的白嘁,但是請求之后有一次重定向(自動跳轉(zhuǎn)),到https的膘流;然后就出問題了絮缅,走的webview加載失敗的方法,打印的error是
NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
so呼股,為什么呢耕魄,再看看這個https鏈接在瀏覽器里的狀況,顯示的是彭谁,證書過期不安全的鏈接吸奴。
d. 百度,額缠局,不要吵则奥,確實是百度。狭园。读处。。
結(jié)論:
是因為測試環(huán)境的證書好像是后臺自己弄的唱矛,然后還過期了罚舱,于是就會有這個問題,
解決方法:
這個點解決方法有三種:
一種是后臺更新證書绎谦,找一個好的能被信任的證書放過來馆匿;
第二種是客戶端改代碼,把不安全的這個給屏掉燥滑;但是最好能區(qū)分一下是上線還是測試,上線的時候把這些給去掉阿逃,要不這個https就沒意義了铭拧。
最后一種是,大家都不改恃锉,測試不要測這個了搀菩,反正線上是好的。破托。肪跋。。土砂。??
不要問我用的哪種州既。谜洽。。吴叶。阐虚。
如果客戶端要修改的話,參考iOS UIWebView 加載https站點出現(xiàn)NSURLConnection/CFURLConnection HTTP load failed (kCFStreamE...這個蚌卤,我沒試啊实束,好像暴露了什么。逊彭。咸灿。