I'm working on getting an app on Amazon. It's been live for over a year on iTunes and Google Play as a free app with in-app purchases. I have the app setup for the Amazon store with the same in-app products, all showing a "live" status on their developer console. I've been using the IAB plugin from
http://giderosmobile.com/labs/iab, but that uses a deprecated version (1.x) of the Amazon purchasing library. The exported app built fine, and Amazon approved it, warning that it was incompatible with some newer Amazon devices due to the outdated IAP library.
In the Gideros source on GitHub I see the Amazon interface has been updated to use the current (2.x) version of the Amazon library:
https://github.com/gideros/gideros/blob/master/plugins/iab/source/Android/src/com/giderosmobile/android/plugins/iab/frameworks/IabAmazon.javaDropping that into my project, swapping in the new Amazon IAP library, and updating the manifest receiver element as per the current Amazon IAP sample, all builds and runs without errors, and Amazon approved the app, showing it compatible with all devices for which they test.
The problem is that IAB isn't actually working. Stepping through it in Eclipse I see that onUserDataResponse() is never called. That's a callback that should be called in response to PurchasingService.getUserData(), but it's not, so the Amazon IAB interface code decides that the IAP SDK is not accessible and gives up.
Has anyone encountered a similar situation and found a solution?
I'm basically grasping at straws at this point.
When you submit an app to Amazon they alter the APK, resigning the app. Does anyone know if that has to happen before the IAP will work? If so that would explain what I'm seeing when debugging in Eclipse, but not why the app delivered through the Amazon app store for live app testing isn't getting any response from the store. That would also be quite a barrier to further troubleshooting.
Any help would be greatly appreciated!
Paul
Comments
It uses in-app-purchasing-2.0.1.jar Amazon IAP SDK, and that is what I tested IAB interface with, which version do you have?
And yes, debugging works a little different, you need an SDK tester app and a json file describing your iaps in the root of SD card for it to work.
https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/testing-iap-2.0
If the debugging environment is preventing the callbacks from running, then perhaps my problem in the last app I submitted to Amazon was the manifest entry for the receiver. In that version I hadn't changed the receiver. The original IAB instructions call for:
receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver"
but sample Amazon provides with the jar file has a slight difference:
receiver android:name="com.amazon.device.iap.ResponseReceiver"
For your app did you use the latter?
Paul
https://github.com/gideros/gideros/commit/690f5c0637a1afce832d2de47e211d39669ef7c8
Thanks for your quick responses!
Paul
Paul
Likes: pie, ar2rsawseen