蘋果文檔對設備的deviceToken何時可以更改有點模糊。它支付防守代碼並測試該代碼。有沒有辦法強制你的iOS推送通知deviceToken改變?
我寫了我的應用程序,以便在啓動時註冊推送通知並處理didRegisterForRemoteNotificationsWithDeviceToken
回調。
我的didRegisterForRemoteNotificationsWithDeviceToken
將最後一個設備令牌保存爲用戶默認值,並且如果令牌仍然相同,它將繼續。如果它根本沒有保存的令牌,或者令牌不匹配,它會上傳我們的服務器的新令牌。
我也有一種機制,可以讓我用人類可讀的名稱命名我的測試設備,如「4s_1」「5s_1」「5s_2」等。我有一個服務器命令行工具,它採用人類可讀的設備名稱,從中查找設備的'identifierForVendor',然後使用標識符查找設備令牌。然後觸發沙箱通知。
似乎刪除應用程序並重新安裝應用程序會導致'identifierForVendor'發生更改,但不是deviceToken
,這與我想要進行測試的情況完全相反。我想要一些永不改變的值來唯一標識測試設備,並且改變設備標記以便測試我的代碼。
編輯:由於寫了這個我已經改變了應用程序來生成它自己的UUID並將其保存到鑰匙串中,正如Wain在他的回答中所建議的那樣。
是否有辦法強制Apple的APN更改設備的令牌,以便我可以測試出我的代碼(客戶端和服務器端)用於處理令牌更改的情況?
我正在考慮去鑰匙扣路線。鑰匙串條目在刪除給定開發者帳戶中的所有應用程序後都可以倖免於難 –
從開發者帳戶中刪除?鑰匙串在設備中刪除應用程序。 – Wain
很酷。我擔心應用程序鑰匙串條目與共享用戶默認條目類似,並且在開發人員帳戶的最後一個應用程序被刪除時被清除,但它們仍然存在。感謝您的建議。 –