Este error puede ser causado por varias razones.
Aquí está la lista de requisitos para las pruebas de Google IAB.
Prerrequisitos:
- AndroidManifest debe incluir el permiso "com.android.vending.BILLING" .
- APK está construido en modo de lanzamiento .
- APK está firmado con los certificados de lanzamiento . (Importante: con "Firma de aplicaciones de Google Play" ¡solo funciona si descargas directamente desde GooglePlayStore!)
- APK se carga en el canal de distribución alfa / beta (anteriormente, como borrador) en la consola del desarrollador al menos una vez. (Toma algo de tiempo ~ 2h-24h ).
- Los productos IAB se publican y su estado se establece en activo .
- Las cuentas de prueba se agregan en la consola del desarrollador.
Requisitos de prueba:
- Test APK tiene el mismo código de versión que el que se cargó en la consola del desarrollador.
- Test APK está firmado con los mismos certificados que el que se cargó en dev.console.
- Cuenta de prueba (no desarrollador): es la cuenta principal en el dispositivo. (La cuenta principal puede no ser necesaria, según el comentario de @MinosL )
- La cuenta de prueba está habilitada como probador y está vinculada a un método de pago válido . ( @Kyone )
PD: Depuración con certificado de lanzamiento : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp para el enlace)
PPS: quería hacer esta lista desde hace mucho tiempo.
Thnx @zlgdev , @Kyone , @MinosL para actualizaciones
Ahh encontró la solución después de intentarlo durante un par de horas.
fuente
Lo mismo sucederá si su versión publicada no es la misma que la versión que está probando en su teléfono.
Por ejemplo, la versión cargada es
android:versionCode="1"
, y la versión que está probando en su teléfono esandroid:versionCode="2"
fuente
android:versionCode="1"
y el teléfono estáandroid:versionCode="2"
bien o tengo que cambiar mi apk google play?Debe firmar su APK con su certificado en vivo. Luego instálelo en su dispositivo de prueba. Luego puede probar InAppBilling. Si está probando su aplicación mediante ejecución directa a través de eclipse al dispositivo (en modo de depuración), obtendrá este error.
Si lo está utilizando
android.test.purchased
como SKU, funcionará por completo, pero no tendrá el developerPayload en su respuesta final.Si está utilizando su propio borrador en el elemento de la aplicación, puede probarlo por completo, pero se le cobrará y, por lo tanto, tendrá que reembolsarlo usted mismo después.
No puede comprar artículos con la misma cuenta de Gmail que usa para la consola de desarrollo de Google Play.
fuente
En la consola del desarrollador:
Settings
->Account details
->License Testing
-> Cuentas de Gmail con acceso de pruebay escribe aquí tus cuentas
fuente
Si está aquí desde 2018, debe descargar el APK directamente desde Play Store e instalar el APK "derivado". Tal vez sea porque la Play Store de Google tiene una función "Firma de aplicaciones de Google Play".
fuente
Esto sucederá si usa una versión diferente de la apk que la de Google Play.
fuente
Permítanme agregar lo que pasó conmigo, puede ayudar a alguien.
Fue principalmente debido a la firma.
Como he agregado los detalles de firma en la estructura del Proyecto, estaba pensando que cada vez que ejecuto, se instala el apk firmado firmado. Pero se seleccionó el tipo de compilación 'depuración'.
La solución a continuación resolvió el problema para mí.
fuente
En mi caso, vi el mismo mensaje debido a las diferentes firmas de la apk instalada y una apk cargada en el mercado.
fuente
Al contrario de muchas respuestas y comentarios en SO y otros sitios, NO tiene que realizar pruebas preliminares con una versión alfa / beta de su producto que se ha descargado de Google Play en su dispositivo de prueba (el proceso de publicación alfa / beta a menudo se consume Medio día). Tampoco tiene que cargar y volver a cargar un apk de lanzamiento firmado de su estudio de desarrollador en su dispositivo de prueba.
PUEDE depurar Google Play preliminar en los servicios de facturación de la aplicación utilizando la aplicación de depuración cargada desde su estudio de desarrollador directamente a su dispositivo de prueba a través de ADB. Si experimenta errores que impiden esto, es probable que haya hecho algo mal en su código. Preste especial atención al CASO de sus SKU (ID de producto) y su formato (por ejemplo, si carga su APK como com.mydomain.my_product_id, asegúrese de intentar comprarlo de esta manera, proporcionando el mismo caso y dominio) . Además, preste especial atención a su tipo de elemento: esto debería ser "inapp" o "subs" para compras administradas / no administradas en compras de aplicaciones o suscripciones, respectivamente.
Según lo sugerido por Chirag Patel, siempre que tenga su código de facturación correctamente establecido, realice todas las pruebas usando el android.test.purchased Sku (ID del producto) durante sus pruebas preliminares. Verifique este ID en todas sus operaciones de facturación para pasarlo a través de las verificaciones de firma, token y carga útil, ya que el sistema de prueba de Google no proporciona estos datos. Además, proporcione esta identificación a uno de sus productos de prueba para probar su compra, desbloqueo / carga y presentación en todo su esquema. Para BORRAR la compra, simplemente consúmela, pasando el mismo Sku Y una cadena de tokens formateada de esta manera; no hay otros campos relevantes:
Una vez que haya completado esta fase de prueba, pase a las pruebas semi-en vivo con su producto alfa / beta. Cree un grupo de Google (esencialmente una lista de correo), agregue los correos electrónicos de sus usuarios de prueba y agregue / invite a este grupo a probar su dispositivo en esta fase (realizado en la parte "APK" de la lista de desarrolladores de Google de su aplicación). Las compras se simularán pero no se cobrarán realmente; sin embargo, para liquidar y volver a probar las compras, Google indica que debe reembolsarlas de su billetera Google. ESTA es la única fase de prueba que requiere el proceso lento de usar cargas alfa / beta y probar usuarios.
fuente
Si desea depurar IAB, lo que tiene que hacer es:
Envía a Google Play una versión de tu aplicación con el permiso de IAB en el manifiesto:
Agregue un producto a su aplicación en Google Play: Administración de facturación en la aplicación
Establezca un almacén de claves de depuración personalizado firmado: configure Eclipse para utilizar el almacén de claves firmado
fuente
Tuve el mismo problema y no se resolvió antes de leer la publicación de DZDomi. De repente, ocurrió que hay una configuración en la Consola de desarrollador de Google que debe habilitar. En la sección "Compras en la aplicación", hay una línea para su producto y en el extremo derecho hay un estado para él. ¡Debe estar ACTIVO!
fuente
mi problema fue que intenté verificarlo con el debug.keystore, es decir, ejecutarlo a través de eclipse. Lo exporté con el almacén de claves con el que publiqué en modo alfa (debe publicarse antes de que pueda probarlo). lo instalé en mi teléfono y luego pude probarlo normalmente.
fuente
El problema también ocurre cuando agregaste una compra en la aplicación después de cargar el apk, pero no publicaste la aplicación en Play Store (alfa, beta y producción).
Lo que básicamente significa que debe agregar la compra en la aplicación DESPUÉS de haber publicado el apk en Play Store (alfa, beta y producción). De lo contrario, no podrá comprar ni consultar la compra desde la aplicación.
fuente
Otra razón que no se menciona aquí es que necesita realizar pruebas en un dispositivo real. Con el emulador volviéndose realmente bueno, es un error fácil de cometer.
fuente
Recientemente, Google ha implementado un cambio en sus sistemas, y dado que ha cargado al menos un APK en su consola, puede probar sus solicitudes en la aplicación con su aplicación con cualquier código / número de versión.
Referencia cruzada LINK
fuente
SOLUCIÓN
Solo espere un momento después de cargar su aplicación en Play Store porque Google tarda un tiempo en actualizar las versiones de la aplicación. ¡Funcionará!
fuente
Tengo el mismo problema en moto c2 + en mi caso, es un problema del dispositivo una vez que reinicio, entonces se ejecutará perfecto ...
fuente