Hey folks. I'm seeing something odd in iab.requestProducts() with the Google framework. I get Event.PRODUCTS_ERROR if I have more than 20 products listed when I call setProducts(). I'm trying to use 29, and I can use the first 20 or the last 20 without an error so it's not specific to any one product, but as soon as I include 21 products I get the product error. I understand Google supports far more than 20 in-app products per app. Is there a limit imposed by the Gideros IAB plugin?
I've tried creating a second instance of the IAB class, and splitting the products between the two. If a second instance of IAB is created then both fail to get the products.
Is there some trick to using more than 20 in app products with the IAB plugin?
PaulH
Comments
I will test it with more when I get home form vacation
PaulH
PS - Finally gave up on getting expansion files to work. I spent a couple days picking the best of the content to get my APK file down to 49.5 MB. That still leaves the game with vastly more content that the nearest competitor of this type of game currently on the market. I thought that issue was the last roadblock to release, just needing to plug in the rest of the in-app products. I'm extremely frustrated right now, to run into another barrier to release.
/**
* Provides details of a list of SKUs
* Given a list of SKUs of a valid type in the skusBundle, this returns a bundle
* with a list JSON strings containing the productId, price, title and description.
* This API can be called with a maximum of 20 SKUs.
* @param apiVersion billing API version that the Third-party is using
* @param packageName the package name of the calling app
* @param skusBundle bundle containing a StringArrayList of SKUs with key "ITEM_ID_LIST"
* @return Bundle containing the following key-value pairs
* "RESPONSE_CODE" with int value, RESULT_OK(0) if success, other response codes on
* failure as listed above.
* "DETAILS_LIST" with a StringArrayList containing purchase information
* in JSON format similar to:
* '{ "productId" : "exampleSku", "type" : "inapp", "price" : "$5.00",
* "title : "Example Title", "description" : "This is an example description" }'
*/
I'm going to try to get to know the code to see what it would take to do multiple calls to the API.
Paul
Again, thanks for looking into this on your vacation!
Paul
Disabling some products from the store should theoretically provide a temporary fix, but changes to the app store take some time to propagate, and I won't know for a while if that worked. So I'm releasing a fix in which the app lists fewer products via IAB.
That will get my users up and running fairly quickly, but the issue remains. I've traveled many thousands of miles around the US the last few years shooting locations for this app, and have about 100 more to release over the next two years or so. I expect to top out with at least 243 products, but I won't be able to offer more than 127 until this is fixed.
The limit of 127 is highly suspicious. It hints strongly at a signed byte being used as an index into an array storing some data about the available products. I don't see anything like that at first glance.
Is anyone more familiar with the underlying code in IAB, and perhaps able to shed some light on this problem?
Paul