2014-08-28 98 views
1

我們有一個使用APNs服務的應用程序,並且該應用程序的後端/服務器位於.net中。我創建了dev和prod Cert。爲應用程序並將生產證書放置在生產服務器上。無法從Apple APN生產服務器獲得響應

我們在接收推送通知方面沒有問題,並且所有功能都可以在開發服務器上使用開發證書正常工作。問題出現在生產服務器上,當我們點擊一​​個觸發推送通知的web服務時,它不會發送響應,並且在請求超時之後它會給出504響應。

有沒有人面臨同樣的問題或任何人都可以幫助擺脫這種困境?

P.S我已經評論了現場服務器上的推送通知代碼,它工作正常,所以我致命地確定問題是推送通知服務。

回答

1

生產環境的二進制界面通過gateway.push.apple.com,端口2195可用 ;在 開發環境的二進制接口,可通過 gateway.sandbox.push.apple.com,端口2195

參見:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

A.確保您按下時,使用正確的鏈接通知

對於發展,您可以使用:gateway.sandbox.push.apple.com

另外,製造,您使用:gateway.push.apple.com

B.當您生成XCode項目並直接運行到連接的設備時,生成的IPA正在使用開發配置證書。所以,產品推送通知不會發送到設備。當我很久以前開始瞭解推送通知時,我犯了這個錯誤。

爲了讓您測試您的設備上生產推送通知,你必須: -

  1. 刪除設備中的應用。

  2. 確保「發佈」下的供應配置文件使用特設分佈配置文件。 enter image description here

  3. 生成使用存檔一個特設的供應IPA。將IPA導出到桌面或任何你喜歡的地方。

  4. 從您的XCode打開管理器,轉到「設備」。將新生成的IPA拖放到當前連接的設備的應用程序中。

  5. 設備上可用的應用程序現在使用分發證書。它發送給服務器的設備令牌與用於開發證書的設備令牌不同。所以,你必須使用正確的設備令牌。

如果您正在做的一切正常,您應該會收到產品推送通知。

+0

感謝您的回答瑞奇。我已經完成了所有這些步驟並將生產證書用於生產服務器。之前我正在使用Web服務器文件的硬編碼路徑直接獲取證書。問題是,當我嘗試從使用ad-hoc分發配置文件的iPhone設備中找到該響應時,我的web服務尚未發送的響應。 – 2014-08-28 12:14:28

+0

老實說,我不知道你的意思是「打網絡服務」。您是否可以在不使用Web服務的情況下嘗試手動推送消息?或嘗試使用Parse.com或其他免費推送通知提供程序。 – Ricky 2014-08-29 01:28:20

+0

點擊web服務意味着請求其餘api發送推送通知。 – 2014-08-29 12:58:31

0

經過大量的應用程序的調試,並重新創建證書,但它並不能幫助我的事業,直到我閱讀了有關推送通知蘋果文檔此文檔:

據蘋果這些端口應該是對網絡開放服務器爲 發送通知。以下是他們在其 APNs支持文檔中所寫的內容。

由推式服務

推提供商(網絡服務器)使用的IP地址範圍通常是防火牆之後。要發送 通知,您將需要允許入站和出站TCP數據包 通過端口2195來達到反饋服務,你需要允許通過端口2196

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG31

入站和出站TCP數據包

雖然我的託管服務提供商尚未在我的網站託管的服務器上打開這些端口。

謝謝大家幫助我解決這個問題。