因此,我在商店中有一個應用程序,我已將其下載到手機中,並獲得該設備的推送令牌。我測試了無聲推送通知發送,實際上,它工作正常,我的設備收到了它。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刪除我的應用程序的情況下,令牌無效?
也許這是預期的行爲,我的問題沒有意義,但如果它是預期的行爲,請您指出我正在解釋這一點的一些文檔?
在此先感謝。
好點,但有點認爲,蘋果是能夠標記實際備份的應用程序的令牌,而不是使其無效。 – uerceg
如果在沒有互聯網連接的計算機上進行備份,蘋果將無法知道備份是否存在。從該備份還原電話,並且推送令牌仍然有效。 –