In this tutorial, you will learn how to test your In-App Purchases in your iOS and Android apps. Before following the steps in this tutorial, make sure you have already completed the previous lessons and configured your In-App Products and Subscriptions in your Apple account and Google account, and in your BuddyBoss App plugin.
Testing In-App Purchases is a bit different from testing other app features, as Apple and Google have their own policies and restrictions for how this works. You can test in a limited capacity from your Test Apps, and optionally, you can upload the Release Apps to Apple and Google to test everything more fully.
Testing in your Test Apps
For both iOS and Android, you can only test In-App Purchases in a limited capacity from within your Test Apps. When you create In-App Products in your App Store Connect and Google Play Console, both accounts associate the products with your Release Apps only, and as such they are unable to share any product data via API to your Test Apps. This means we cannot actually pull the pricing information, or the terms (subscription durations, etc.) into a Test App. Within the Test App we are limited to displaying data that is stored in the plugin only. You can still use the Test App for testing purchases, to see what happens in the app after making a purchase, but the experience will not be exactly the same as in a Release App.
When viewing Free Products in your Test Apps, you will see all of the product information. Free products correctly display their “Free” label, and also display that they provide “Lifetime” access to whatever is being purchased. This is possible because Free products are not actually using In-App Purchases from your app stores. Free products are just processing the “purchase” from within the app’s internal functions and bypassing the app stores completely.
When viewing Paid Products in your Test Apps, you will see a “Price” placeholder where the price would normally display, and you will see text informing you that the product terms can only be viewed from a Release App. Additionally, when viewing Paid Products in your Test Apps, you will not be able to purchase them using the native iOS or Android purchase mechanisms. You can still “purchase” the products in the Test App, but the app is just faking the purchase for the purpose of testing; it is basically treating the paid products as if they were free products, and bypassing the app stores completely.
Testing in your Release Apps
If you want to test your In-App Purchases more fully, you can optionally test them from approved Release Apps. This will allow you to see all of the pricing data (in your local currency) and product terms from your Paid Products, synced in from the app stores, and will make it possible to purchase the products using the native iOS and Android purchase mechanisms. You will not be charged for these purchases; both iOS and Android are smart enough to recognize that the Release App is not published and have their own methods for billing you with a fake purchase.
For iOS, to test In-App Purchases from a Release App on your device, you will need to use TestFlight, which is Apple’s official method for testing apps prior to publishing. You will need to download the Release App IPA file from the Build History in your WordPress admin, upload the file to TestFlight, invite testers into TestFlight, and then download the build from the TestFlight app. Read our iOS Release App tutorial for step-by-step instructions.
For Android, to test In-App Purchases from a Release App on your device, you will need to download the Release App APK file from the Build History in your WordPress admin, upload the APK file into a Testing Track in your Google Play Console, wait for Google to approve the app for testing, and then invite testers and have them download the app from a special Testing Track URL. Read our Android Release App tutorial for step-by-step instructions.