Does push notification token changes after application update?
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
So a typical update doesn't change them. I don't ever remembering myself having to agree to receive after an update...
IMPORTANT NOTE:
If a user logs out of the app and a new user logs into the same device, then the token would remain the same. Why? Because there's no class or messaging system exposed to developers to let the OS know it has to deregister a token from device.
Hence you must unregister that token from that user/account ie you have to make some sort of network call you to your platform, otherwise new user would be receiving push notifications that belong to previous user.
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.