App using RevenueCat got rejected in review
Asked Answered
K

2

6

So I implemented an auto-renewing subscription on my iOS app using RevenueCat's SDK.

Quoting from their website, https://medium.com/revenuecat-blog/getting-through-app-review-39ac50438c62

Improper use of sandbox vs production validation environments Developers often get sideways when submitting an app the makes use of Apple’s /verifyReceipt endpoint. Sometimes devs will configure the release version of their app or backend to point only at the production IAP environment. Doing this fails in App Review because the reviewers use the sandbox environment for testing. RevenueCat makes this a non-issue.

Everything was tested fine on Sandbox through Xcode "run" and TestFlight releases, but apparently it failed when the app reviewer attempted at it.

We found that your in-app purchase products exhibited one or more bugs when reviewed on iPhone running iOS 13.5.1 on Wi-Fi.

Specifically, your app displays an error message when we attempt to purchase your subscription.

Next Steps

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.

Anyone has any experience with getting through this? I've just gone through revenuecat's documentation one more time and my code sees to be in order. Thanks

Ken answered 7/6, 2020 at 22:37 Comment(0)
Y
3

Understanding the rejection reason

There's usually three places in the purchase flow that cause the majority of App Store rejections:

  1. Issues fetching products
  2. Error during purchase
  3. Content not unlocked after purchase

Usually the reviewer will include a screenshot with the problem they encountered. This can be helpful for you to track down where to look for the problem in your app. Always try to reproduce the issue first in a local build or Testflight. RevenueCat will behave the same way in your environment and the reviewers, so if there's any problem with your integration it should be able to be reproduced.

Issues fetching products

Often times, purchases will work fine in Sandbox and Testflight, but App Store Review will not be able to fetch products. It's important to ensure that you are including your products with your app for review. If an app has not already been approved for the App Store, the in-app purchase products must be submitted with your first app review.

Don't forget to submit the products with the first version of your app containing in-app purchases

Don't forget to submit the products with the first version of your app containing in-app purchases

If you've already released a version of your app containing in-app purchases, you can create new products in App Store Connect without having to release an update to your app. You'll have to submit new products for review independently of a new app version, and they must be in the 'Approved' state before they'll be available for purchase.

If you're having trouble fetching products in Testflight or a local build, here's a good article with the most common reasons this occurs.

Error during purchase

If an error occurs during the purchase process with RevenueCat, it will be one of the errors outlined in the Error Handling guide here. Understanding what error triggered the rejection is the only way to make sure the issue gets resolved.

If the reviewer provides a screenshot of an error popup - use that to help track down the issue. RevenueCat itself will never display a user-facing popup or error message, so look through your app to find the code that triggered the alert and work backwards to determine the error message.

"Cannot connect to iTunes Store"

This is actually the generic error message Apple uses for all SKErrors and not an error message from RevenueCat. See their guide on Error Handling for more info.

STORE_PROBLEM - "There was a problem with the App Store"

This is the most common error from RevenueCat that can lead to unexplained App Store rejections. Unfortunately, this error occurs when Apple's sandbox environment is down and unable to verify purchases. The best course of action here is usually to re-submit your binary or try to explain the situation to the reviewer.

There are frequent, momentary outages in sandbox from time-to-time, but occasionally outages can last for days at a time.

Content not unlocked after purchase

Your app could also get rejected even if there are no issues during the purchase process, but the content does not get unlocked after purchasing. You should be able to reproduce this issue in a test environment.

Double check that you're checking the subscription status correctly after a purchase.

Other Tips

Reviewer provided "Next Steps"

Often times, the reviewer will provide you with "Next Steps" to resolve the rejection as they've done here. These are usually not the most helpful in pinpointing any issues with purchases.

If you're using RevenueCat, sandbox and production purchases are automatically handled so even if the reviewer provides you with this reason, it's simply incorrect.

App rejections suck :(

Yokoyama answered 9/6, 2020 at 21:48 Comment(5)
Indeed, eventually, after submitting 3 more builds, build #4 finally got accepted. Literally no meaningful changes to the code, just a few cosmetic changes. The rejection indeed was likely a problem over at Apple. But unable to get anyone from RevenueCat to respond to my emails and my posts on their discussion forum, I had no choice to switch my IAP service provider to AppHud. Thanks for your reply though.Ken
Hey there, Jacob here, CEO at RevenueCat. Sorry you had a bad experience. We've been a bit behind the ball on support the last few weeks (COVID really accelerated things for us and we're still catching up). We see these rejections often, and it's usually some issue with the app reviewers sandbox environment. Glad it finally made it through.Salamander
Hi @JacobEiting, we are using RevenueCat (Pro) for our app and it got rejected thrice because the reviewer saw an error message on the subscription landing page. They are not able to load the products, while we have tested it on TestFlight and everything works fine. I really have no idea what to do.Mysia
Dealing with the same issue now. This is the first in-app purchase build they're reviewing and all products for sale are still in review. I'm wondering if that might be the reason for the "The receipt is missing". Not sure how the products for in-app purchase reviews work. Will chat to the reviewer and update here if there's anything useful.Rozella
@JacobEiting this worked for me, thanks. https://mcmap.net/q/1751838/-app-using-revenuecat-got-rejected-in-reviewRozella
R
2

To those with a similar problem where Apple rejects your app, yet you've tested the purchases both in Dev and in Testflight, then you can try the below approach that worked for me.

I tried resubmitting at least 12 times, the reviewers kept coming back saying it's not working for them and they give a few screenshots.

Step 1:

Check whether all your keys between RevenueCat and AppStoreConnect is set up and reflects the latest keys you might have generated. This sounds silly but it's easy to make a mistake here.

After correcting my keys (I somehow missed setting up my Revenue Cat, ASC's seceret key - oops), Apple still rejected me but this time for some Missing receipt. After some research, it appears this issue is usually on Apple's side when their sandbox is down.

This is where the next step comes at play.

Step 2:

Record a video of you doing an in-app purchase with a testflight build and reply to the rejection message from the reviewer showing them that it works for you, asking them if they can possible check on their side because everything works as expected on your side. That's it. This is the magic step.

I need to say that i've explained to multiple reviewers that it works for me in Dev and testflight but it didn't help. The video however, worked like charm!

Good luck and trust me, video proof works!

Rozella answered 22/1, 2023 at 4:48 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.