iOS - Test purchases

A guide on how to handle most common issues while testing on iOS Sandbox

When testing in-app purchases on iOS Sandbox, the testing process may be less complicated compared to the Android Sandbox. However, the results may not be the same as what you can expect in the real production environment, thereby reducing the significance of such testing.
This guide will help you understand how to test your app on iOS Sandbox to get the most accurate results.

Check overall functionality

Testing on iOS Sandbox is mostly suitable for checking the overall functionality of in-apps. However, it is not suitable for testing complex scenarios.

Watch out for unexpected outcomes

The first time you purchase or use the app in Sandbox, everything will seem fine. However, if you reinstall the app or use it as a new user, unexpected things can happen. Be prepared for this and take note of any discrepancies.

Beware of "Empty" profiles

If there is a receipt on your device, Adapty will read it and grant Access Levels to all users with that receipt. This means that if the original user began a free trial, all users with the same access level will receive introductory_offer_eligibility: false, as if they were the ones who initiated the free trial. Additionally, there will be no events for them since duplicating the events would interfere with the analytics.

Testing on iOS - Photo 1

As you can see, they are missing transactions, but do have info about Total Revenue, Access Level, and Product.

And here is the original profile with all the transactions:

Testing on iOS - Photo 2

📘

What about Production?

This behaviour may also occur on Production, where a person with the same Apple ID will access the app on different devices, having no trouble accessing the features they paid for. They will have multiple Adapty profiles, sharing one Access Level. Again, there will be no duplicates for events.

How to test

To run a "from scratch" test, follow these steps:

  1. Create a new Apple test account: https://developer.apple.com/help/app-store-connect/test-in-app-purchases/create-sandbox-apple-ids/
  2. Disable Keychain as it may affect the the receipt delivered.
  3. Log out of your normal Apple account so that only the Sandbox account will remain active."

Error 1000 (noProductIDsFound): No in-app purchase product identifiers were found

If you are encountering this error, please follow the steps below to resolve it:

  1. Check if all the products have been added to Adapty Dashboard.
  2. Ensure that the Bundle ID of your app matches the one from the Apple Connect.
  3. Verify that the product identifiers from the app stores match with the ones you have added to the Dashboard. Please note that the identifiers should not contain Bundle ID, unless it is already included in the store.
  4. Confirm that the app paid status is active in your Apple tax settings. Ensure that your tax information is up-to-date and your certificates are valid.
  5. Check if a bank account is attached to the app, so it can be eligible for monetization.
  6. Check if the products are available in all regions.

Also, ensure that your products are in “Ready to Submit” state.

Conclusion

Testing in-app purchases on iOS Sandbox may be less complicated than Android Sandbox. However, you must remember that the results may not be the same as in the real production environment. This guide has given you an idea of what to expect and how to navigate unexpected outcomes to get the most accurate results.

Keep in mind that Adapty is sticking with the current logic as it works best on production, prioritising production performance, reliability, and a better user experience.