I have an issue that I think is related to Test Flight, but I can't be sure. This may apply for anyone that deletes and re-installs my app from the App Store, even if they are unrelated to my internal or external development team.
At least for users that are in my internal developer group in Test Flight, when they delete and reinstall my app that they were once part of the internal production beta for from the App Store, they generate a brand new device token each time. To be clear, my app was at one point in internal development in Test Flight, but has since expired.
This can be particularly troublesome because if one of my developers downloads my app from an unusual IP (like a cellular connection), then deletes the app, and reinstalls on the in-house WiFi connection, that old token is lost in limbo forever. I cannot locate that "ghost" token to remove it without risking deleting a valid user or more. I say this because I have waited > 30 days and APNS Feedback does _not_ remove this "ghost" token.
My app was originally developed under iOS 8 in April. Whenever a developer or outside user deleted and re-installed my app, they would get the exact same device token. Now, in iOS 9, whenever an internal developer (at the minimum, in the worst case all users) deletes and reinstalls my app from the App Store, they generate a _new_ device token that is completely unrelated to the old one, and both tokens look valid to APNS incorrectly. This goes against everything that the documentation says. I have tracked the documentation closely, and nothing seems to have changed from iOS 8 to iOS 9. I know much was discussed about the "new" way APNS would function (longer IDs, etc.) at WWDC, but none of that is reflected in the official documentation yet that I can find.
I hazard a guess that this is related to the new way push notification permissions are presented to the user in iOS 9. In iOS 8, push notification settings stayed put for something like 24 hours. This was trouble for developers, because if they wanted to "reset" their app, they had to turn the clock forward or backward (can't quite remember which) over 24 hours, and then reboot their phone once or twice to "reset" that push notification permission UIAlertView. Now, anytime you delete and reinstall the app, the UIAlertView is presented and a new token is generated. Apple's feedback service does not seem to have "caught up" with this change and chaos is slowly starting to ensue for my push notification app.
I have not changed my app's bundle identifier or anything. My app is hitting all the correct delegate methods, etc.
I am not the only developer that seems to have this issue, there is at least one thread on Stack Overflow here that seems to be reporting the same issue, and it appears Apple dismissed this as a "beta issue", when, in fact, this problem persists in the iOS 9.1 production release to this day:
Other users on this official sub-forum also report similar issues in recent months.
Please, would someone from Apple or someone that has insight explain this? I am getting ghost notifications now for over a month that I simply cannot get rid of without risking deleting a valid user. I downloaded my app on an IP I didn't record, and my token refuses to be removed by the Feedback service. I should not have to record which IP is associated with a device for it's entire history, that's not how APNS was designed. The two device tokens that correspond to the same device are both _valid_. I'm getting two notifications for every one I should be getting on the production App Store version of my app.
Thank you dearly to anyone that takes the time to read this and/or reply.