I have two apps on the iTunes store - both implement push notifications. While I was testing sending notifications to these production apps, I noticed that a push intended for app A was titled and opened app B.
Both of these apps are installed on the same phone. I looked in my device table and saw that the device Tokens (and of course, the Device ID) listed for the two apps were both the same.
As required, I am using two different certificates on the server - one for each app. I sort of assumed the device Token or certificate would route the message to the right app but clearly it isn't.
I can see in NSLog that the tokens being sent from each app are indeed the same.
Should the device Token be unique to each app? If so, any idea how my test phone could be sending the same device token for both apps to my server. Keep in mind this is from two apps currently on the app store.
Thanks for any help!
You can not use token as a unique identifier but remove old token using save in keygen(help from itunes) and delete old token and add new one in your database.
That said, remember that Apple reserves the right to change a devices APNToken as they see fit, so don't use it to uniquely identify a device / user.
NOTE: this is an old answer that is true only for iOS <= 6. See user1641761's answer for the current approach.
Figured it out. The Device Tokens are NOT unique to the phone-app pairing. They are unique to the phone only. If you have multiple apps with push on the same phone they will all use the same Device Token. The certificate you use to send the notification will dictate which app it goes to.
iOS 7 handle this differently. It is UNIQUE now.
Please see point 1 in this article: http://urbanairship.com/blog/2013/10/03/how-ios-7-handles-push-differently
"Prior to iOS 7, the device token was the same across all app installations on a given device. Different apps on your phone, whether Tap Tap Revenge or USA Today, would utilize the same address, i.e., device token, to route the push notification to you. The security credentials that you pair with a message would ensure it made it to the right app. On iOS 7, Apple has gone one step further and made sure that device tokens are now different in every single app install. This helps further protect users’ privacy by removing another phone-level identifier."
See also ios 7 device token is different for same device
Device token for push notification is app-specific. Not device specific. i.e Device token will be different and unique for multiple apps in same device.
According to apple,
You can refer apple document here Local and Remote Notification Programming Guide
Sharing my understanding and few answers from Apple Developers: