Hello everyone - Since we made sandbox testing a mandatory step to release your game on UDP, a mounting number of questions around the UDP Sandbox began to arise. This is why we improved the sandbox environment in the latest package, added more guidance directly in the UDP Console (look under the “Sandbox Testing” section), and created this forum post to shed light on what needs to be done and why. Update: we created a short tutorial video about the UDP Sandbox. Give it a look and post any question you'd have in this thread. (Latest UDP Package is version 2.1.4 available from the Package Manager and the Asset Store, and comes with updated documentation) What is the UDP Sandbox for? The sandbox environment is essentially a “test store” for your IAPs. When you directly implement an app store’s IAP SDK in a game, it ensures IAP transactions work with that store’s payment system. When you implement the UDP SDK in your game, your UDP build will have its IAP transactions take place in its test environment: the UDP Sandbox. Later on, your UDP build will be repacked for the “real” app stores (Samsung Galaxy Store, Huawei AppGallery, etc). This will remove the sandbox environment and patch in the store-specific SDK, so that each store-specific build repacked by UDP can work directly with that store’s respective payment system. What happens without sandbox testing? Sandbox testing ensures your UDP implementation operates correctly before you progress to the next step (repacking for the stores). Without it, you can’t find and resolve any issues that arise during your initial UDP implementation. If it turns out something isn’t working as you move closer to store submissions, either your game will fail to repack, or it will repack and remain faulty. This will result in game rejections, and even worse, players not being able to complete transactions in your game. When to test in the UDP Sandbox? You need to have gone this far in your UDP project: You’ve installed and set up UDP. You’ve implemented the Initialize() method. More info here. If your game has IAPs you’ve also: Implemented the QueryInventory(), Purchase(), Consume() methods. More info here. Added IAP products in your IAP catalog. You don't need to localize IAP prices and descriptions yet, as the sandbox will only use English and USD. But the IAP products must show on the UDP console. You’ve built your APK. You’ve created UDP Sandbox test accounts, either in the Unity Editor (UDP Settings) or in the UDP Console (section “Sandbox Testing” of the Game Info page). Note that there is no need to rebuild your APK if you add or modify test accounts. In short, it’s when you’d expect your UDP implementation to be complete, and prepare to test it ahead of creating your first release on UDP. What to test in the UDP Sandbox? Before a game can be released for the first time, UDP makes it a requirement to: Initialize UDP in the sandbox at least once Complete an IAP purchase in the sandbox at least once (if your game has IAPs) This is to ensure that the UDP implementation works for a simple and nominal case, though we encourage you to test your UDP methods more extensively. The UDP Sandbox is connected to the larger UDP ecosystem, so your UDP Console knows if / when you’ve cleared these steps for your game. This is how (and why) UDP halts your game’s first release if this step is not completed. Note that after your first release, you will not need to repeat the sandbox testing to release new revisions of your game on UDP. How to test in the UDP Sandbox? Launch your UDP APK in an Android emulator or on a real Android device. When your game launches it should call the Initialize() method, which invokes the login screen in the sandbox environment. Log in using your sandbox test account. The initialization will only complete after you log in successfully, after which you will see a toast notification appear. Back in the UDP Console, in the section “Sandbox Testing”, the UDP Initialization label will turn to a green “Tested” status. If your game has IAPs, make and complete one IAP transaction. Since this is a test environment, no real money will be used. If the purchase is successful a toast notification will appear, and back in the “Sandbox Testing” section of the UDP Console, the IAP Transaction label will turn to a green “Tested” status. Once you have your “Tested” status(es) you’ll see a green tick appear in the left panel of the Game Info page to confirm you’ve cleared sandbox testing. Now, you’re clear to complete any remaining steps on your Game Info page to release your first revision and submit it to stores! Troubleshooting Be sure to check your UDP implementation if any IAP-related issues arise, such as: No login screen appearing No IAP products retrieved Unresponsive purchase buttons Inability to complete a purchase For further troubleshooting information, check the UDP Package documentation. The UDP support team is also reachable via the “Contact Support” link on the UDP Console. Why do we need sandbox test accounts? Sandbox test accounts protect access to the generic UDP build. After all, you wouldn't want players to access it and pass it around, letting anyone get a hold of your IAP products for free. Also, rest assured that the sandbox login page only appears in the generic UDP build. Repacked builds (the ones submitted to the stores) will never show this login page to players. When UDP repacks your game, the sandbox environment is stripped out, along with the login page, and it is replaced by the store-specific implementation. Wrapping up We really hope this post will help you navigate and clear the sandbox testing requirement. Let us know how it goes. Remember that: All games must clear the Initialization (whether they have IAPs or not), Only games with IAPs need to clear a Purchase, You can only release your game on UDP once the sandbox testing is cleared.