Testflight results in extra login prompt

I am testing a new iOS app which has an in app purchase, and I am getting some unusual behavior when testing the app through Testflight.


When the app is launched, I perform local receipt validation to determine if the in app purchase is in the receipt. If no receipt, which seems to often be the case in testflight, I make an skreceiptrefresh request, as recommended in the receipt validation guide. This results in a user prompt to enter app store credentials (even though signed in), which is annoying but acceptable. I then process the receipt when it returns in the requestDidFinish delegate method.


However I am seeing some odd behavior which I believe is related. I download and run the beta app via Testflight, and enter the app store credentials. After this, I close the app. If I then swipe over to the iOS search page, I am prompted to enter app store credentials, even though logged into the app store in the iOS settings. This only happens once, but if I delete and reinstall the beta app, it will recur.


Has anyone seen this behavior? Is it a Testflight bug? Could this somehow be related to the skreceiptrefresh request?

Replies

I removed the skreceiptrefresh request from my receipt validator and instead do nothing if there is no receipt. The extra login prompt went away. I don't know if this would be an issue in production, since any app downloaded from the app store should have a receipt.

If it's restored from an iTunes backup or maybe some other circumstances it might not have a receipt I think. I don't know that for sure but I have a hazy recollection. Hopefully PBK or someone else more familiar with it can confirm either way.

I was incorrect, the problem has recurred despite removing the SKReceiptRefreshRequest. Hopefully just a testflight issue.

I believe I saw that somewhere to. I think I will leave the receipt refresh request in for now, and see what happens in production.


The only other thing I can think is going on is that I never entered a redeem code into testflight, maybe that is somehow causing the issue.

This issue does not occur in production.