Frequently Asked Questions
The debug log or popup on the device says that billing is not supported/item could not be found/authentication is required.
One reason could be that your bundle identifier in Unity does not match with the one on the App Store. For Google Play, your developer key must be entered in the IAPManager prefab and your app has to be published as alpha/beta build (takes up to 24 hours). Also you must be logged in as a test user on the device (test account added in Google Play/iTunes). Please see the dedicated platform guides for more information.
I’m getting an "This version of the application is not configured for billing" error.
In addition to #1, on Google Play your AndroidManifest file in Unity must contain the permissions and activities needed for your billing plugin to work. Please refer to your billing plugin manual about which activities are required. If you are using Unity IAP, this is done automatically. After that, you have to upload your build APK with the correct bundle version/code to Google Play.
The UIShopFeedback says that it could not find the IAPManager prefab.
Please start from the very first scene of your game, where the IAP Manager prefab is located.
Can I have both IAPManager and IAPContainer/UIShopFeedback in the same scene?
If there is only one scene in your project - yes. Otherwise the IAPManager prefab should go into the first (e.g. loading) scene, and the IAPContainer in your shop scene.
Where do I set up the ShopItem prefabs and parent containers in my shop?
The connection between ShopItem prefabs and where they get instantiated - as childs of the containers - is saved in the IAPContainer component on a per-scene basis. You define product categories in the Project Settings and assign it to the IAPContainer in your shop scene.
My shop items do not show up.
Make sure that your prefabs and parents are assigned on the IAPContainer component in your shop scene. Also, SIS can't receive the product list if there are errors in your billing setup. See #1 and #2 for reference.
My shop items are duplicated.
Make sure that the IAPManager prefab is only placed in the first scene of your app, still connected to the prefab asset, and that you start your game from there.
I want to reset my non-consumable purchases, so I can start testing the same products again.
You can use the "Clear Database" button (or its code) from any of the sample scenes to wipe the product database. If you repurchase the product now, a "product already owned" message will show up - this is totally fine and will behave like a new purchase! Optionally on Google Play, you can cancel the purchase in the Order Management section as described in the thread below and wait for a refresh (few hours) or clear both the cache of your Google Play app and Google Play services on the device manually.
How do I customize and modify visual elements of an ShopItem UI prefab?
ShopItem prefabs consist of various Unity UI elements. You can find manuals and tutorials on the official site. Drag the prefab under a Canvas gameobject in the scene (create one if necessary), make your changes and apply them.
I want to have the same size for shop items on all devices, regardless of the screen resolution.
In Simple IAP System, UI elements are using pixel-perfect textures for best readability. You are looking for Unity's Canvas Scaler component (Scale With Screen Size). Attach it to your canvas in the shop scene. If you're using one of the sample shop scenes, find all IAPContainer components and set both "Max Cell Size X/Y" to 0.
The title/description/price is different in Unity or gets overwritten when I launch the app on a device.
For in-app purchases, your offline price gets overwritten with the localized app store price after initialization. Uncheck "Fetch" for your product in the Project Settings if you don't want to use the localized price (not recommended, because players should see prices in their local currency).
Can I create my own button to purchase products and not use item prefabs?
Sure. You can write a short script for your button which calls SIS.IAPManager.Purchase(string productId) directly.
What's the best way to upgrade to a new version of Simple IAP System?
When you upgrade to a new version, you probably want to keep your IAPSettings.asset (saves products in the Project Settings) and the IAPListener script (your product callbacks). If you've used the ReceiptValidatorClient script and uncommented its contents, keep it in mind too. On the import prompt, uncheck all of them and overwrite the rest. Afterwards, double check that your IAP settings in the Project Settings are still valid.