I setup an IAP for an autorenewing subscription, and got up and running on store kit using apple sandbox test accounts setup in itunes connect.
I followed the documentation for developemnt: sign out of the app store on a test device, and then launch the app and go through the IAP flow using the sandbox account when prompted for an authentication. That worked just fine.
At that point, I was ready to introduce our IAP flow in beta via test flight. Accoring to the TestFlight FAQ (pg 7), you can use a normal iTunes account under Beta and charges for IAP's are free within the context of the beta app.
In our beta app the IAP flow completes successfully with a normal itunes account. The trouble is that after a period of time iOS starts prompting for account authnetication all the time, both in and out of the app. All of our users are seeing this behavior. It seems like the account status gets screwed up once your subscription expires in the beta version (30 min subs with 6 extensions).
As far as I know, I am not able to affect this. The store kit API's basically allow me to initiate the process, and I get a callback from storekit with the status of the purchase attempt. I do not control asking for authentication or anything like that, so I'm at a bit of a loss as to what I might have done in my code to caused iOS to freak out and aggressively prompt for authentication.
Has anyone else seen this behavior with in app purchases within TestFlight distributions? Any help / insight appreciated...thanks
Environment:
We are targeting iOS SDK 8.0, building against the 9.0 SDK.
* iOS versions: 8.1.4, 9.0.0, 9.0.1, 9.0.2
* Devices: iPhone5, iPad mini, iPhone 6/6s
It sounds like the "endless loop" problem form many years ago. That was caused by failing to call 'finishTransaction' on all of the transactions that came from the app store (one every 5 minutes, usually stopping after 5 but on at least one occasion continuing for a few weeks). Your app may not be calling finishTransactions because:
1) a coding error on your part
2) there is a bug in iOS9 whereby the transaction is not sent back to the device under certain circumstances (see discussion on this topic on this forum)
Check out #1 to be sure you are finishing all transactions including the ones that will be generated 5 times to any device that subscribes and sent to that device the next time it launches with or subsequently adds a transaction observer