2016-04-06 42 views
0

我有,我只收到一個iPad設備上的下列錯誤一個奇怪的問題:GCM註冊在iPhone上成功,但沒有ipad的

The operation couldn’t be completed. (com.google.iid error 501.) 

在GCM註冊過程來請求GCM令牌。即

GGLInstanceID.sharedInstance().tokenWithAuthorizedEntity(gcmSenderID, 
              scope: kGGLInstanceIDScopeGCM, 
              options: gcmRegistrationOptions, 
              handler: gcmRegistrationHandler) 

我在關注the example這封信。 iPhone上的同樣的過程工作得很好。我不確定這兩款設備之間有什麼區別,以及爲什麼GCM拒絕在iPad上註冊。這兩款設備目前都在運行iOS 9.3.1。

頭文件表明,這個錯誤對應:

// Device seems to be missing a valid deviceID. Cannot 
// authenticate device requests. 
kGGLInstanceIDOperationErrorCodeMissingDeviceID = 501, 

不過,我不知道到底是什麼意思。爲什麼iPad會丟失一個設備ID,但iPhone可以嗎?

如果任何人有任何想法,爲什麼會發生這種情況,並可以分享一些見解,我將不勝感激。

謝謝!

+0

你試過註冊ipad嗎?根據(https://developers.google.com/cloud-messaging/notifications),您必須爲每個設備獲取註冊令牌。 501是內部服務器錯誤。您可能需要刷新令牌或請求另一個令牌。 – noogui

+0

感謝您的回覆@noogui。你在哪裏看到501是內部服務器錯誤?我相信你會將HTTP狀態碼與Google SDK產生的錯誤代碼混合在一起。我直接從SDK源代碼中找到它與無效的deviceID相關的信息。是。設備正試圖在此時註冊,並且在註冊過程中出現錯誤。因此,它無法刷新或請求令牌,因爲它正在嘗試執行該操作並正在接收此錯誤。 – astjohn

回答

0

最後,我們最近根據Google的建議過渡到了Firebase。一切按預期工作。