項目要做簡單的推送,于是很愉快的集成了極光推送。拿自己跟同事的手機測試一下很happy,都能收到通知.
但客戶產(chǎn)品一直說,他們都收不到推送,納尼? 什么鬼???

這個就花了狗了,居然連通知都沒有
下面是我跟客戶的截圖

好,抽根煙冷靜一下...
第一:客戶沒必要欺騙我,所以這是真的.
第二:是否是證書原因?,還是特定機型iPhone8,出現(xiàn)特定的bug?
否決一下,我能收到,排除證書原因,那iPhone8,她的手機別的app可以收到推送,pass掉是手機原因...
仿佛進(jìn)入了一個死循環(huán)...
好吧,不廢話了,我問了幾個大佬,其中有個大佬說:
你這樣思考問題的思路不對...你應(yīng)該從客戶的角度,把自己當(dāng)成客戶那樣去操縱,去復(fù)現(xiàn)問題,這樣才能發(fā)現(xiàn)問題,解決問題.
突如其來的神助攻,讓我茅塞頓開,對啊,我跟同事的手機都是通過Xcode跑一遍安裝的,而客戶是通過蒲公英去安裝的.這兩者肯定有區(qū)別. 查了一下,蒲公英對包動手腳,只是一個分發(fā)
我自己也嘗試安裝了我打出來的包,發(fā)現(xiàn)包的確安裝不上...
好吧,我產(chǎn)品你是對的!
那是什么原因????
是debug跟release的原因嗎?
抽根煙,冷靜下...
用Xcode在真機上運行調(diào)試時可以正常收到推送消息,但是將項目打包測試包出來后安裝到真機上無法收到推送,猜想問題肯定是出在證書上,因為iOS推送有一個開發(fā)證書和一個生產(chǎn)證書,用Xcode在真機運行肯定是開發(fā)環(huán)境 收不到推送,很有可能打包測試ipa包用的是生產(chǎn)證書。
現(xiàn)在回顧一下Xcode打包iPa四個選項的具體區(qū)別

1. Save for iOS App Store Deployment
保存到本地 準(zhǔn)備上傳App Store 或者在越獄的iOS設(shè)備上使用
2. Save for Ad Hoc Deployment
蘋果的官方解釋是:To distribute your app to users with designated devices, select “Save for Ad Hoc Deployment.” The app will be code signed with the distribution certificate.(保存到本地 準(zhǔn)備在賬號添加的可使用設(shè)備上使用(具體為在開發(fā)者賬戶下添加可用設(shè)備的udid),該app包是發(fā)布證書編譯的)
3. Save for Enterprise Deployment 生成企業(yè)包
這種主要針對企業(yè)級賬戶下 準(zhǔn)備本地服務(wù)器分發(fā)的app,也可直接發(fā)給你的客戶或測試人員安裝,無需在帳號中添加設(shè)備的udid。注意:此證書為299$的企業(yè)證書
4. Save for Development Deployment
蘋果的官方解釋是:To distribute your app for internal testing, select “Save for Development Deployment.” The app will be code signed with your development certificate. (針對內(nèi)部測試使用,主要給開發(fā)者的設(shè)備(具體也為在開發(fā)者賬戶下添加可用設(shè)備的udid)。該app包是開發(fā)證書編譯的)至于Save for Ad Hoc Deployment和Save for Development Deployment兩個選項的區(qū)別,官方給出的解釋是證書的區(qū)別,但是對于我們來說,還不是特別清楚具體的用處。其實最早當(dāng)我們選擇Save for Ad Hoc Deployment來生成ipa包的時候,我們是可以選擇開發(fā)證書的,但是現(xiàn)在,它需要我們使用發(fā)布證書。我們最早在做程序真機測試的時候,大部分時候是用的開發(fā)證書,并沒有發(fā)布證書,所有我認(rèn)為,Save for Development Deployment是我們前期用開發(fā)證書,給測試人員發(fā)包測試的時候使用的,而到程序開發(fā)的后期,我們?yōu)榱税l(fā)布,生成了發(fā)布證書,此時,我們給client或者tester的時候,應(yīng)該選擇Save for Ad Hoc Deployment,使用發(fā)布證書打包, 而官方對Ad Hoc的解釋是:Ad Hoc模式的包,和將來發(fā)布到App Store的包在各種功能測試上是一樣的,只要Ad Hoc模式下測試(推送,內(nèi)購等)沒有問題,發(fā)布到App Store也是沒有問題的。
ok,看了上面,重點來了.
我之前都是選擇的AdHoc,那么我現(xiàn)在選擇第四個就解決問題了...
經(jīng)測試的確沒問題了...實際上,問題還不是這里.
而是極光推送后臺,有一個選項,是否將生產(chǎn)證書用于開發(fā)環(huán)境...
我當(dāng)時點了一個是,實際上就出現(xiàn)這些烏龍了..
反省:
第一,出現(xiàn)問題了,我只看我的手機,及同事的手機可以收到推送,就沒有第一時間理會.
第二,客戶報出這個問題,沒有第一時間,站在客戶的角度去復(fù)現(xiàn)問題.
第三,大佬的思路是正確的,我跟大佬的差距,就在于思考問題的方式思維??(就是腦子不如大佬???♀?)
第四,沒能將問題很明確的描述出來,導(dǎo)致走了這么多彎路.
實際上問題應(yīng)該這么描述:
用Xcode跑一遍安裝的應(yīng)用,能收到極光的推送.用蒲公英分發(fā)的包,卻收不到應(yīng)用.
如果我一開始就這樣描述清楚了,那么是不至于走這么彎路的..
謹(jǐn)記:把問題描述清楚, 比解決問題更加重要.