iOS 13.4 sandbox purchase issues

Hi,


I'm seeing some new behavior, that's possibly a bug, with iOS 13.4 during the sandbox purchase flow.


In older iOS versions, when I made a sandbox purchase, I'd see several popup dialogs from iOS asking me to sign in, and to confirm the test purchase. Since updating my devices to 13.4, when I make a purchase, I see a couple of strange things occurring:


1) The purchase completes without any user interaction - no authentication requests, no purchase confirmation dialogs.

2) Despite using a fresh app install, and a brand new iTunes Sandbox user, it appears that an older receipt is being reused, and it's one which has no details of the current purchase.


Is anyone seeing the same? Can any Apple folks chime in whether this is a known/temporary issue with the sandbox?

Replies

I don't know if this is the same issue but it in my game (Grand Mountain Adventure), in app purchases has stopped working since iOS 13.4. Sandbox, or no sandbox.


The line "[[SKPaymentQueue defaultQueue] addPayment:payment];", which usually opens up the purchase pop-up is executed, but since iOS 13.4 nothing happens.


If anyone knows more about this issue please respond.

I may have answered your question on another thread. Especially because you are now writing about a 'pop-up'.

Following over there, popup was the wrong word, I meant the purchase dialog.

I am facing the same issue here. After I realize a test with success in the sandbox environment my others try failed. Apple always returns the old Purchase object (The on that had success but reached the expiration time) with status purchased instead pending and no purchase dialog shows. I'm facing this since last Saturday.

As I've investigated further, I'm seeing something else that's curious, which I think might be related. Back in February, I found and fixed an issue where my app wasn't calling finishTransaction() appropriately. The completed sandbox payments that I see arriving on the paymentQueue have transaction dates from right around that time. This may just be a coincidence since it's the last time that I tested sandbox purchases, or it may indicate that the sandbox server is deciding to ensure that clients properly deal with all old transactions that are hanging around before acknowledging any new purchase attempts. I'd like to know if other folks who are encountering this issue have also forgotten to ensure that they're calling finishTransaction()?

Resetting all content and settings has allowed me to get out of this strange state. Sandbox purchases now work for me as before (with a fresh sandbox user) on the reset device.

When you say "Resetting all content and settings" do you mean you had to reset the entire device?

Like a bad meal, unfinishedTransactions often 'pop-up' every week or so.

Hello,


I am also facing the same issue here. Since last so many days sandbox environment behaving abnormally. We have submitted binary two times on AppStore with In-App purchases but unfortunately both the times they have rejected with some reason that purchase is going indefinitely when click on buy button. When I download same binary through TestFlight app and tested on our end, It works completely fine. How could this double behaviour of any In-App purchase in sandbox?


Can anyone help me out here?

Correct.

I have faced that issue too. I am exaplaining here what I was doing and what I did to resolve this
Actually I was validating receipts with the app store according to the apple documentation

https://developer.apple.com/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store

and I was sending two parameters "receipt-data" and "password" everything was worked fine till ios 13.3 , But after upgrading to ios 13.4 , in-app stopped giving me purchase dialoge/pop up and app received transaction.transactionState as purchased every time , Then re-visit above aaple link and came to know i was missing exclude-old-transactions parameter.

I have faced that issue too. I am exaplaining here what I was doing and what I did to resolve this
Actually I was validating receipts with the app store according to the apple documentation

https://developer.apple.com/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store

and I was sending two parameters "receipt-data" and "password" everything was worked fine till ios 13.3 , But after upgrading to ios 13.4 , in-app stopped giving me purchase dialoge/pop up and app received transaction.transactionState as purchased every time , Then re-visit above aaple link and came to know i was missing exclude-old-transactions parameter.

I am having a stranger problem which may be related.


I wrote a small app with Unity to test the inapp purchase process

1. The app works ok when tested on device using Xcode and sandbox testers setup on Apple Connect. Though will also see that behavior as mentioned in this thread, just can buy with no further popup to confirm.

2. When the app is tested through TestFlight, something strange started to happen. Some testers are ok and some are not (getting the purchase failure reason of Unknown). The only thing that is in common for those who are ok is they all using ios versoin < 13.4.1....except one.

3. I tried to push through the testflight beta review so that more people can try. The reviewer rejected the build because he is also getting the Unknown error. After explaining to him what I am trying to do, he approves the build. When this build is tested by more users, same thing happens, some are ok and some are not....

Yes, this works for me.

It's very weird that I need to notify the user to reset to default when got this error.


But thanks, it's very helpful to workaround to fit this.

This issue is extremely burdensome. In order to test purchases in the sandbox env I have to reset my device sometimes serveral times a day.


I am finishing these transactions. I know this is the case because I've set up several brand new sandbox testers and confirmed via code inspection and debug breakpoints that my code is finishing purchase transactions correctly. So that leaves me wondering what could be possibly going wrong that's in my control to fix, or even workaround in a less burdensome manner than resetting all content and settings.


I've filed FB7645732 along with details and a sysdiagnose, and am hoping that it can get some traction.