1

我目前正在使用Xamarin Unified IOS項目在VS中構建應用程序。應用程序的一個要求是使用推送通知。問題是我們的測試設備/應用程序在第一次註冊時沒有任何問題,我們可以在Azure門戶和Azure服務總線中看到註冊事件。我也使用'服務總線瀏覽器'應用程序和VS中的服務器瀏覽器功能確認了初始註冊。Azure通知集線器和Apple APNS推送通知取消註冊設備

發送測試推送通知時出現此問題。根據我也可以訪問的所有日誌,該消息被成功推送到蘋果APNS服務器,並且我看不到作爲PNS請求的一部分返回的任何故障。但是,一旦完成,設備註冊將被刪除,並且通知永遠不會到達測試設備。

我的理解是,azure應用程序中心本身會處理PNS拒絕,以便整理設備註冊。這本身並不是一個可怕的想法,但由於缺乏記錄,很難確定根本原因。我爲這一個做了一個荒謬的Google搜索,很多人都提出了使用蘋果證書的問題。我已刪除,重新創建,辭職,驗證,APNS證書和配置文件,直到我用完組合。這些都沒有解決這個問題。

爲了使問題更加混亂,如果我使用諸如'http://pushtry.com'或'http://pushwatch.com'之類的服務並上載證書和設備令牌,它將允許我成功地將通知推送到設備。

我是否缺少明顯的東西?或者是通知中心非常難以爲APNS設置和調試?

您可以提供任何幫助,我會讚賞,我會發布一些代碼,但據我所知,該設備註冊了正確的設備令牌,在這一點上我沒有看到它的必要,但請隨時告訴我除此以外。非常感謝。

回答

0

經過許多人時間和運氣而不是任何一種邏輯過程,我們確定'Azure Notification Hubs'具有內置的驗證器,用於傳遞給APNS的蘋果設備令牌。因此,即使有多個示例和答案,表明向通知中心提交沒有空格或符號的設備標記,實際上這也是錯誤的方法。設備令牌應始終以「原樣」狀態提交給「Azure通知中心」,而不需要在Xamarin.IOS應用程序中進行任何驗證。雖然這似乎是一件容易忽略的事情,但谷歌有很多矛盾的證據,Azure的文檔對於提交的設備令牌的格式幾乎沒有提及。無論如何,希望這將有助於別人有一天。

- 編輯 -

設備從蘋果令牌格式:< XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX>

格式,許多在線資源表明,它傳遞給通知樞紐爲:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 沒有空格或'<'和'>''

但是,它應該傳遞到通知集線器,因爲它是從Apple收到的。

+0

嗨,我在Notification Hubs團隊工作。我們不驗證句柄,並按原樣傳遞。 您的問題聽起來更多地圍繞着生產/開發用法。每個集線器都可以被聲明爲prod或dev,並知道如何與apns的prod或dev端點通信。以下組合應該可以工作: 1. prod/test統一apns證書,prod供應配置文件,prod集線器 2. prod/test統一apns證書,dev供應配置文件,dev hub 您能確認兩者都不起作用嗎? –

+0

在apns返回無效令牌/過期令牌錯誤後,集線器刪除註冊,這意味着,如果將dev設備令牌傳遞給prod apns端點,端點將拒絕它並導致設備刪除。反之亦然。 –

+0

所有非常瞭解,因爲你大概可以從我原來的帖子確定,但是說的上述答案正是導致能夠成功發送測試通知並解決與Azure通知集線器註銷設備問題的情況。 – Digitalsa1nt

相關問題