2016-09-02 74 views
3

進出口使用APNS後未返回狀態410協議發送pushnotifications,我使用的代碼是類似這樣的帖子: https://stackoverflow.com/a/34831873/1546652APNS http2 API與http2卸載應用

當我的應用程序正確安裝了APNS http2 API作品確定發送郵件時,我的反應是一些風格: {「response」:「」,「httpcode」:200}

問題是,當我卸載應用程序併發送pushnotification到無效的registrationId我不接收狀態410,也不迴應「原因:未註冊」,並且仍然收到狀態200的真實回答。

如何在apns http2中取消阻止應用程序時獲得410狀態和相應的響應?

+1

您是否能夠檢測到此問題? – GJain

回答

2

This technical note可能的幫助下,基本上

,iOS將保持每APNS環境(生產/沙盒)一個套接字連接,當你從iOS版刪除的應用,如果對於一個給定環境中的最後一個程序的時候,殺死套接字連接以及導致刪除事件被刪除的最後一個應用程序。

這通常發生在開發應用程序中。

解決方案是在註冊APN的設備上安裝一個虛擬應用程序,並使用開發人員身份簽名,現在當您在開發過程中從設備上刪除實際應用程序時,它將保持與APNS打開的連接,導致應用程序被刪除被報告給APNS。

此外,在我的測試中,我經歷了30-60分鐘左右的延遲,之後應用程序刪除反映在APNS響應中。

+0

感謝兄弟,但我創建了另一個與開發人員身份(相同證書)和不同的臨時配置文件簽署的應用程序,因爲你不能使用相同的臨時配置文件與不同的bundle-id並沒有工作。我想,如果使用專用設備不會失去服務。另外我不認爲這是可能的技術說明在「從App Store安裝任何免費的支持推送的應用程序中說,然後你應該能夠刪除你的應用程序,並看到它出現在反饋服務」..做到這一點對你有意義嗎? – user1546652

+0

從註釋中引用:「您可以通過在設備或計算機上至少保留一個啓用了應用程序的應用程序來解決此問題,以保持持久連接。要保持與生產環境的持續連接,只需安裝任何免費推送從App Store啓用應用程序,然後您應該能夠刪除您的應用程序,並看到它出現在反饋服務中。「建議的應用商店安裝僅適用於生產用例。安裝虛擬開發應用程序應該可以解決問題。另外,你的問題是特定於http2 API嗎?你有沒有從二進制api的反饋服務中卸載? –

+0

您鏈接的註釋是遺留文檔的一部分。問題在於指的是http2 api,這是記錄[這裏](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html#//apple_ref/doc/uid/ TP40008194-CH11-SW1)。我在使用http2 api進行測試時也發現,由於應用爲「未註冊」,推送失敗可能需要至少10分鐘。 – efeder