Skip to main content
Question

Introductory offer eligibility is not shown in sandbox on fresh install

  • 24 July 2024
  • 3 replies
  • 21 views

Hello!

Our app was rejected due to the same issue discussed here: 


It appears that the solution given in that thread was basically to not use the sandbox - but the App Store reviewer uses the sandbox to test and validate our app?

We were able to get things working by restoring purchases prior to trying to view the introductory offer. However, as you can imagine, it is difficult to communicate this issue to the App Store reviewer.

I have some follow-up questions on this:

  • Is this an App Store Sandbox issue or is there an issue with the RevenueCat SDK?
  • Has a bug report been filed with Apple that we can reference when responding to the reviewer?
  • Is there some sort of additional functionality we should implement in our app to make sure we don’t experience this issue in the sandbox?
This post has been closed for comments

3 replies

Badge +3

The RevenueCat docs recommend against programmatically calling `restorePurchases` but that appears to be the only way to make this work. The `syncPurchases` method seems to have no effect.
 

I see many posts about this issue on this forum and others and it seems like there really is no real solution right now.

In hopes of seeing if there’s anything at all we can do - is there a way to determine if the we are interacting with the sandbox environment to limit when we call `restorePurchases` programmatically? We definitely don’t want to trigger the Apple login prompt for customers, but the issue is more about having this functionality work reliably when testing against the sandbox (especially when the app is under review by Apple).

Userlevel 4
Badge +6

Hey @Eric DH!

Sharif’s advice in that post is not necessarily to not use the sandbox but to be mindful of the limitations of it - limitations which are on Apple’s end and you could very possibly run into without using the RevenueCat SDK. As you said, there’s no avoiding the sandbox environment with App Review. Our general advice for when reviewers are running into issues that you are not able to reproduce on your own test builds is to resubmit. 

Regarding programmatically calling `restorePurchases` - to my knowledge, there isn’t a way to determine which environment is being interacted with until after a purchase is made. Are you currently utilizing RCAnonymousIDs in your app or using your own custom IDs? `syncPurchases` can act a little differently depending - it will trigger as a full restore for anonymous IDs, while just syncing the device on receipt for non-anonymous custom IDs. If you use anonymous IDs and programmatically call `syncPurchases` before showing the introductory offer, this should get the same result as calling restorePurchases manually without triggering a login prompt.

Badge +3

Our general advice for when reviewers are running into issues that you are not able to reproduce on your own test builds is to resubmit. 

 

For us, the issue is reproducible in test builds, but not production. After installing the app from xcode, Testflight, etc. we consistently need to restore purchases to be able to determine intro offer eligibility. The error shown in the logs is:

 

Are you currently utilizing RCAnonymousIDs in your app or using your own custom IDs? `syncPurchases` can act a little differently depending - it will trigger as a full restore for anonymous IDs, while just syncing the device on receipt for non-anonymous custom IDs.


This is good to know, thank you! We are using custom IDs so I don’t think this is a path forward for us.

If there’s any other way to avoid this issue it would be super helpful to know about, because it’s difficult getting rejected and trying to convince the reviewer that it is a sandbox issue.