2017-03-21 34 views
0

因此,我在商店中有一個應用程序,我已將其下載到手機中,並獲得該設備的推送令牌。我測試了無聲推送通知發送,實際上,它工作正常,我的設備收到了它。iOS推送令牌在擦除iPhone後仍然有效

我想檢查推送令牌無效後的時間。我所做的第一件事情是簡單地卸載應用程序,並注意在這之後,我會開始越來越{"reason":"Unregistered","timestamp:1234567890}curl請求,看起來像這樣:

curl -d '{"aps":{"content-available":"1"}}' --cert "/Users/uerceg/Desktop/ProductionCertForMyAppsPush.pem":"password" -H "apns-topic:com.my.app" --http2 https://api.push.apple.com/3/device/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

一旦我已經卸載從我的設備的應用程序,它通常變化從案例到案例(我猜反饋服務有一些令牌刷新邏輯,我沒有真正意識到,也沒有找到關於它的一些文檔),但是需要3-12分鐘才能開始接收我的應用程序的信息卸載。可愛。

之後,我想再測試一個案例 - 選擇Erase All Content and Settings,然後徹底清除iPhone中的所有內容,之後不恢復任何備份。

一旦我這樣做,應用程序也被刪除。但curl請求總是返回狀態200。我等了5天,5天后,它仍然返回200好像應用程序已安裝,但我的猜測是它不應該。一旦刪除了所有內容,我已經新安裝了我的應用程序,獲得了新的推送令牌,我用它再次成功發送靜默推送通知。

當然,如果我有機制來識別這個特定的設備新安裝了一個應用程序,我可以更新後端的令牌不再發送通知給該設備,但我的問題仍然存在:爲什麼Apple不是在通過擦除和重置我的iPhone刪除我的應用程序的情況下,令牌無效?

也許這是預期的行爲,我的問題沒有意義,但如果它是預期的行爲,請您指出我正在解釋這一點的一些文檔?

在此先感謝。

回答

1

可能出於同樣的原因,如果您備份手機並從備份恢復,現有的按鍵仍然有效。使正在擦除的設備上的密鑰失效將會消除可能從備份中使用相同密鑰的可能性。

+0

好點,但有點認爲,蘋果是能夠標記實際備份的應用程序的令牌,而不是使其無效。 – uerceg

+0

如果在沒有互聯網連接的計算機上進行備份,蘋果將無法知道備份是否存在。從該備份還原電話,並且推送令牌仍然有效。 –

相關問題