Skip to main content

Hello RevenueCat community,

I'm facing an issue with my app "Flight Canvas" being rejected by App Review. The reviewer attempted to make in-app purchases but encountered errors.

App Review Feedback:

"When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple's test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code 'Sandbox receipt used in production,' you should validate against the test environment instead."

Current Situation:

  • The app works perfectly in TestFlight with sandbox purchases
  • RevenueCat logs show successful offering fetching and subscription recognition
  • Customer info shows proper entitlement activation in testing
  • Using RevenueCat for all IAP handling (no custom receipt validation)

Question:

Is there a setting in RevenueCat I need to change to handle this specific App Review scenario? Do I need to make configuration changes to properly handle sandbox receipts in my production app during review?

I'm confused because I thought RevenueCat would handle this dual-environment validation automatically, and I haven't written any custom receipt validation code.

 

Hi there!

This is a very common situation other developers have experienced as well, and unfortunately, there is nothing we can do, as the ball is most likely in Apple’s court in this situation.

Your current setup looks alright, and the message you are getting is very likely to be because Apple’s sandbox environment is not working the way it’s intended today. I can only advise you to try and submit the app again, as RevenueCat already handles the dual environment validation automatically.

 


Hey ​@vperez , so I made a video of my app subscription working perfectly in TestFlight, sent it in as proof, and guess what? It got approved! 

 


I’m glad it worked!! Feel free to reach out if you need anything else.


Reply