Amazon IAP SDK: No hay respuesta al probar IAPs en Live App Testing

Estoy intentando integrar la última versión de la Amazon IAP API en mi aplicación Android 4+. Todo parece funcionar bien cuando la aplicación se carga en mis dispositivos de prueba (Nexus 5 y Kindle Fire) y se utiliza con el probador de aplicaciones de Amazon. Los IAP se pueden comprar sin ningún problema.

Sé que he subido una versión de "Aplicación de prueba en vivo" de la aplicación a la tienda de Amazon y la he instalado en mis dispositivos de prueba. Ejecutar estas versiones IAPs no son posibles.

Esta es la salida de registro cuando se utiliza la versión de sideloaded con App Tester:

D/PTLog (14109): IAPManager - init - using Amazon D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: xyz.IAPManager@425fe410 D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: xyz D/c (14109): In App Purchasing SDK - Sandbox Mode: sendPurchaseUpdatesRequest/sendGetUserData first:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:87 com.amazon.device.iap.internal.aca:150 D/c (14109): In App Purchasing SDK - Sandbox Mode: sendItemDataRequest W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.itemData flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:137 com.amazon.device.iap.internal.da:103 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse I/c (14109): sendGetPurchaseUpdates with user idl3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU= I/c (14109): send PurchaseUpdates with user id:l3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU=;reset flag:true, local cursor:null, parsed from old requestId:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.purchaseUpdates flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:421 com.amazon.device.iap.internal.ace:388 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse 

Como se puede ver el SDK de compras se inicializa muy bien. Ahora, al usar la versión de prueba de la aplicación en vivo, el registro muestra lo siguiente:

 D/PTLog (18032): IAPManager - init - using Amazon D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener registered: xyz.aad@410435f8 D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener Context: xyz@41021558 D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetPurchaseUpdates D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task. D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetProductDataRequest D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task. 

Como puede ver, parece que existe un problema con el SDK de compras:

 "Kiwi: WARNING: Use of deprecated method detected." 

No importa si la versión Live App Testing se usa en Kindle o en el Nexus con la última versión de la aplicación Amazon Store. El resultado es exactamente el mismo: los IAP no son posibles.

¿Se trata de un problema conocido? ¿Cómo se puede resolver esto?

Muchas gracias

Finalmente encontré una solución para los problemas descritos en mi pregunta. Lo siento por no publicar esto antes …

Hay una pista en los documentos de API de Amazon que describe que hay algunas limitaciones que se pueden usar para ofuscar el código. Parece que algunos API no funciona más si la ofuscación es demasiado fuerte.

¿Está registrando el oyente de devolución de llamada de Amazon en su MainActivity.onCreate (…)?

PurchasingService.registerListener (this.getApplicationContext (), nuevo YourCallbackPurchasingListener ());

Si no lo hace, pruebe eso.

  • Android en la facturación de la aplicación ... ¿Por qué hay información contradictoria?
  • ¿Cómo obtener el ID de USUARIO de Google (no el ID del dispositivo) de seguro?
  • InAppBilling V3 - "purchaseData" y "dataSignature" son nulos al comprar un artículo de suscripción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.