My app:
- has been published to the app store for a month
- has 2 IAP (let's call it IAP1, and IAP2)
- had an update that was approved yesterday Sep 25, 2:08pm pacific
Just this morning, I went to the app store and downloaded my app to make sure things are okay.
I went to purchase IAP1, and it shows the price and description for IAP2. I went to purchase IAP2, and it shows the price and description for IAP1.
The IAP's are switched!
- Button1 goes to IAP2
- Button2 goes to IAP1
So the first thing I thought was my code was wrong. To debug:
- I downloaded the same app build from TestFlight and the IAP1 and IAP2 are NOT switched.
- I do not have code that changes behavior between sandbox and production.
- I reloaded the production build and changed the price of IAP1 and IAP2 from App Store Connect, and observed that IAP1 is set to IAP2's price and vice versa. Which in this scenario makes sense. Button1 opens StoreKit dialog for IAP2 (in production), and displays the updated price for IAP2 since IAP2's price is changed in App Store Connect.
- When I tap Button1, it opens StoreKit dialog for IAP2, and when I tap purchase, it indeed activates/enables IAP2's functionality in my app.
- Restoring both IAP's work perfectly fine. Restoring IAP1 activates IAP1, etc.
If this was happening in all environments dev/sandbox/production, then I'd say it's a bug in my app. But everything is ok in the same build from XCode, TestFlight, and the StoreKit dialog is switched only in production. And it only started happening (that I have observed) this morning. The last time I know for sure I checked this behavior was last week. The update I pushed yesterday had zero changes to IAP.
Anybody else seeing this?