前言:?jiǎn)栴}最終的解決辦法很簡(jiǎn)單,主要是記錄分析解決問(wèn)題的過(guò)程
今天下午在模擬器上適配iPhoneX時(shí)一切正常,切換真機(jī)運(yùn)行時(shí)突然所有的頁(yè)面都加載不出來(lái),同時(shí)極光推送打印一大堆log(忘記截圖),什么DNS解析失敗,udp scoket失敗,巴拉巴拉一大串,主要意思就是服務(wù)器連接失敗。由于所有頁(yè)面都加載不出來(lái),檢查網(wǎng)絡(luò)請(qǐng)求,發(fā)現(xiàn)所有請(qǐng)求都是超時(shí):Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." 。當(dāng)時(shí)第一反應(yīng)就是公司服務(wù)器掛掉了(捂臉,想的好多)!趕緊拿出自己手機(jī)打開(kāi)線(xiàn)上app,發(fā)現(xiàn)線(xiàn)上的沒(méi)問(wèn)題(額,好像服務(wù)器沒(méi)掛)。
既然服務(wù)器沒(méi)掛,開(kāi)始排查問(wèn)題。首先再次切換到模擬器運(yùn)行,依然正常運(yùn)行沒(méi)有問(wèn)題,由于Xcode模擬器不支持推送,而測(cè)試機(jī)上運(yùn)行的時(shí)候有一大堆的失敗log,基本確定是推送的問(wèn)題。
-
首先考慮可能是SDK的bug,是不是需要升級(jí)到最新版本,查看SDK版本,目前已經(jīng)是最新版,不是需要升級(jí)解決的問(wèn)題。再次對(duì)照文檔的集成步驟查看,代碼也沒(méi)有問(wèn)題,由于推送功能處沒(méi)有修改,而且一直是正常使用的,想著可能是Xcode抽風(fēng),把測(cè)試機(jī)上的版本卸載掉重新運(yùn)行。然而運(yùn)行后問(wèn)題并沒(méi)有解決,但是極光打印的失敗log變了,這次直接沒(méi)有走
didRegisterForRemoteNotificationsWithDeviceToken:
極光失敗log 谷歌了一下不走
didRegisterForRemoteNotificationsWithDeviceToken:方法的原因,看到有因?yàn)榧森h(huán)信重寫(xiě)這個(gè)方法而沒(méi)走極光注冊(cè)device token導(dǎo)致問(wèn)題的,而我項(xiàng)目中沒(méi)有集成其他功能重寫(xiě)這個(gè)方法。檢查了推送證書(shū)也沒(méi)有過(guò)期,再次檢查了項(xiàng)目中推送的相關(guān)配置也沒(méi)有問(wèn)題。最后檢查網(wǎng)絡(luò)問(wèn)題,公司的3個(gè)Wi-Fi賬號(hào)全部切換嘗試一遍問(wèn)題依然存在,第四次打開(kāi)自己的4G網(wǎng)絡(luò),把測(cè)試機(jī)和Mac都連上個(gè)人熱點(diǎn),再次運(yùn)行,問(wèn)題解決了!再切換回公司內(nèi)網(wǎng)也沒(méi)問(wèn)題了。。
