Does push notification token changes after applica

2019-04-08 02:46发布

问题:

I am asking about two situations:

1) After we do a regular update from the App Store

2) After we simulate an update, by downloading a current version from a Store and installing & running a new version from within Xcode,

does push notification token changes? If changes, how often eg. each time, or from time to time?

I ask this, because I was doing some testing, where I want to preserve Documents folder after an update. So this can be easily done like I described above, by downloading the app from the Store, and running a new version from within Xcode. But, I noticed that push notifications stopped to work. Then I repeated this few times (uninstall the app, install it from the store, then run the upgraded version from Xcode) and every time push notifications worked.

I wonder if this was due to push notification token change?

回答1:

As far as I know,

1) Regular update from the App Store - APNS token doesn't change.

2) It's a bit tricky. And I believe token changes. First I want to let you know the appstore version uses APNS production certificate and the build run from with xcode uses development one. It will generate different token. And if you still send push notification to the apple push production server, you won't get them on your xcode version. You need to send them to the apple push sandbox server.



回答2:

See Apple Docs:

Never cache device tokens; always get them from the system when you need them. Although device tokens are unique to an app and device, they can change over time. The device token can change at any time but is guaranteed to be different when the user restores their device from a backup, when the user installs your app on a new device, and when the user reinstalls the operating system. Fetching the token from the system ensures that you always have the current token needed to communicate with APNs. In addition, if the token has not changed, fetching it is fast and does not incur any significant overhead.

So based on Apple docs there are at least 3 places that it changes:

  • Restore from backup
  • installs on new device
  • reinstalling the OS
  • note: tokens should be changed if a different user logins to your app. Even if the original use logs back in, then their token is to be different

So a typical update doesn't change them. I don't ever remembering myself having to agree to receive after an update...