2012-07-17 138 views
1

我們有一個推送通知服務器,它爲多個不同的應用程序保存數據(設備令牌)。隨着蘋果希望阻止使用UDID作爲標識符的人們,我正在考慮更換此服務器,以便它不再依賴UDID來識別設備。APNs複製令牌

我知道APN返回的令牌不是全球唯一的,而是每個設備都是唯一的。然而,當我們通過我們的數據庫時,我注意到有幾種情況(在750k +註冊上有幾百個),其中相同的令牌用於不同的設備

所以我想弄清楚是什麼導致了這一點。在這一點上,我看到了兩個可能性:

  1. 有一個在我們的服務器上註冊一個不起眼的錯誤處理的地方
  2. 蘋果回收這些設備令牌(可能是一個設備復位後?)。我們總是存儲上次登錄某個設備的時間,並且我注意到,在具有相同標記的不同設備註冊之間總是有至少幾天的時間。據我所知,沒有令牌同時由不同的設備使用。

我真的很感激,如果有人可以對此有所瞭解。

回答

2

我們知道的是,Apple tells us使用設備令牌將通知推送到設備。所以,只要你是:

  1. 查詢的APN爲每次新設備令牌應用程序啓動並在數據庫中

  2. 其註冊查詢無效設備反饋服務和清除它們從你的數據庫中刪除

......你正在做蘋果希望你做的事情。

但是,我懷疑您的註冊碼中可能存在一個錯誤,因爲100/750k是相當高的衝突率。考慮到這些設備令牌用於推送通知,很多人會抱怨接收不屬於他們的通知...

+0

我忘了我有這個問題打開,但是,我們有一個錯誤在我們的註冊處理。 – Mopper 2012-10-23 20:20:02

+0

Hi @Mopper ...好奇地想知道是什麼樣的錯誤會導致多個用戶獲得相同的設備令牌。我問,因爲我們看到類似的權利,並且知道在我們的系統中尋找什麼將是有用的:) – 2013-07-19 15:44:23

+0

@JoelMartinez就像我在我對這個答案的第一評論中說的,我們的問題原來是一個錯誤我們的設備註冊碼。但是,與此同時,iOS 6.0中存在一個錯誤,可能會導致您收到重複的設備ID。這是解釋[這裏](http://stackoverflow.com/questions/12605257/the-advertisingidentifier-and-identifierforvendor-return-00000000-0000-0000-000) – Mopper 2013-07-23 09:37:18