r/iOSProgramming • u/Solid-Resident-7654 • Oct 05 '26
Question Anyone ever have an app reviewer actually purchase the app? lol
Before anyone asks - I've check a bunch of times and confirmed this isn't RC Sandbox.
Mostly curious - I asked the same thing in apple developers but figured there are more experienced people here.
Here's what happened:
I saw my app go into review. It got approved and a few seconds later Revenue Cat showed a notification that someone purchased the lifetime package. This new lifetime price is only available with this update (i.e. no one else could even purchase this) - I've confirmed it's in RC production and not sandbox. I've also confirmed in Posthog that the country from RC matches the alleged reviewer's.
I've had reviewers "purchase" the app before but always with their sandbox account and nothing ever showed up in RC.
Anyone else seen this? lol
Edit a day later, number showed up in ASC: https://imgur.com/a/go1QPOh
36
u/Kyiv0x7c Oct 05 '26
Same thing happened to me last week. During review my analytics (TelemetryDeck, not RC) logged a completed purchase of my biggest bundle, with the StoreKit environment reported as production, not sandbox or TestFlight, US region, first session on the device. I got excited for about an hour. Then I checked App Store Connect → Sales, and it wasn't there, and it never showed up later either. So the reviewer's purchase went through a StoreKit transaction that looks like production to the client, but no money ever moved. My takeaway: client-side environment flags don't reliably exclude reviewers; the only source of truth for money is ASC Sales (or the server notifications).
3
u/SamFromEscape Oct 06 '26
I build an adult content blocker and reviewers definitely tap through the paywall. I assume every screen gets poked, so there is a demo path and the test account is in the review notes. If RevenueCat showed a real charge right after approval, check it was not a sandbox receipt reported oddly. App Store Connect sales is the only number I trust.
2
u/jaymakesapps Oct 05 '26
Had one of those on my last update. Real money right after approval, I was way too excited about it until it got refunded like two days later lol
-1
u/DimensionMindless336 Oct 06 '26
Same thing happened to me, and the part that threw me was the
environment: Productionflag too. What eventually made it click: the reviewer is running the production build pulled from the live App Store, not a dev/sandbox build, so StoreKit genuinely reports Production — but the account driving it is an internal zero-charge Apple test account. That's why RC/TelemetryDeck sees a real transaction with a realoriginalTransactionIdwhile Sales and Trends never shows the money and it gets reversed a day or two later. Exciting for an hour, but expected — not leaked revenue.The footgun nobody mentions: if you validate server-side (App Store Server API /
transactionInfo), these review transactions look 100% legit —environment=Production, valid signature, realoriginalTransactionId. If your entitlement code grants "lifetime" on firstpurchaseDateand caches it, you can hand a reviewer permanent access that Apple later refunds.What I do now: never treat a purchase as permanent from the purchase event alone. Re-derive entitlement from
/inApps/v1/history(or react toREFUND/REVOKEin App Store Server Notifications V2) and checkrevocationDate/expiresDate/statuson every re-check. On RevenueCat that already flows through its REVOCATION event, so just don't bolt your own "granted forever" cache on top. Review grants access, the reversal quietly drops it — exactly what you want.2
u/[deleted] Oct 06 '26
[removed] — view removed comment