In-app purchases failing in Testflight

We are experiencing widespread issues (on all versions of iOS) with Testflight In-App purchases failing. Purchases are working as expected in Sandbox environment with Sandbox testers created in iTunes Connect.


Normally what used to happen is that we could send a build to our Testflight group and they could use a production App Store account to make purchases (The Apple prompt already says that the purchase is in Beta and they will not be charged. However, now whats happening is the purchase fails with a "Cannot connect to iTunes" error.


To confirm, the SKProducts are loaded perfectly, even a Restore purchase seems to work. Its just buying anything that fails.


We have tested using a Sandbox account in TestFlight and this actually works which is not what we expect since Sandbox testers shouldnt work in Testflight?


Anyone else experiencing this

Replies

Hi Rich,


I met same issue but for me it appeared in such way: standard IAP auth (by password) is going smoothly, but SKPaymentTransactionStateFailed with "Cannot connect to iTunes Store" if I'm using Touch ID as auth option.


I'm ready to make some tests if it could help to solve the issue. Should I sent you email with request for the StoreKit profile and instructions?

Recently , I learned that the proper way to review a TestFlight build of an application is such that it exposes that TouchID is not supported in the sandbox environment. The proper way to review an in app purchase for a TestFlight application build is to

1. Clear out the Settings app -> iTunes and App Store -> user account setting

2. Launch the TestFlight app, then attempt the in app purchase

3. Enter your user iTunes user account and password.

4. Verify that the purchase attempt was successful


So the question arises - why clear out the user account setting before attempting the purchase. The reason is that for most users, the user account is associated with the production environment. There is also a sandbox version of your user account. The production environment account is unsupported when used in the sandbox environment for the TestFlight app. The TestFlight sandbox environment detects the use of the production account, logs the user out of the production environment, and presents the iTunes Auth dialog a second time for the user to confirm the purchase in the sandbox environment. By following the sequence of instructions above, the user is not presented with multiple iTunes authentication dialogs when attempting a purchase of a TestFlight build of an in app purchase app. It also explains why TouchID doesn't work for TestFlight builds. TouchID only works with the production user account, not the sandbox version of the production user account. If you would like Touch ID to be supported in the TestFlight environment, this would be an enhancement request to be submitted using the Apple Developer Bug Report web page - http://bugreport.apple.com


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Post not yet marked as solved Up vote reply of rich Down vote reply of rich

We are experiencing this issue, our in-app button to purchase points is not working. is this about our code?