Esta versión de la aplicación no está configurada para facturación a través de Google Play

269

Cuando intento ejecutar mi aplicación con la facturación integrada en la aplicación, aparece el error: "Esta versión de la aplicación no está configurada para la facturación a través de Google Play. Consulte el centro de ayuda para obtener más información".

Ya tengo el permiso de facturación en el archivo Manifiesto y tengo un .apk firmado cargado como borrador en Google Play y también he instalado esa misma apk firmada en mi teléfono.

¿Alguna ayuda sobre cómo resolver este problema?

Portero
fuente

Respuestas:

339

Este error puede ser causado por varias razones.

Aquí está la lista de requisitos para las pruebas de Google IAB.

Prerrequisitos:

  1. AndroidManifest debe incluir el permiso "com.android.vending.BILLING" .
  2. APK está construido en modo de lanzamiento .
  3. APK está firmado con los certificados de lanzamiento . (Importante: con "Firma de aplicaciones de Google Play" ¡solo funciona si descargas directamente desde GooglePlayStore!)
  4. 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 ).
  5. Los productos IAB se publican y su estado se establece en activo .
  6. Las cuentas de prueba se agregan en la consola del desarrollador.

Requisitos de prueba:

  1. Test APK tiene el mismo código de versión que el que se cargó en la consola del desarrollador.
  2. Test APK está firmado con los mismos certificados que el que se cargó en dev.console.
  3. 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 )
  4. 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

Luten
fuente
55
No olvide asegurarse de que la cuenta que está utilizando para probar IAB esté habilitada como probador utilizando la "URL de suscripción" generada una vez que haya cargado una compilación; Y que está vinculado a un método de pago válido .
Kyone
3
¿No debería ser más fácil simplemente probar IAP? O para probar cosas en general ...
Juan
1
También vale la pena señalar; la cuenta de prueba no debe estar vinculada a la cuenta de desarrollador (no debe tener acceso para cargar APK)
guness
2
También vale la pena señalar; si el "Certificado de firma de la aplicación" está habilitado, entonces no podemos usar nuestro APK local para probar con compras reales ya que no podemos firmar con el certificado de firma. (me llevó como 3 horas para averiguar)
guness
1
He estado probando con éxito con 1) una aplicación de depuración firmada que es 2) no la cuenta principal en el dispositivo , por lo que el proceso para las pruebas de Google IAB parece no ser tan estricto como se indicó anteriormente.
MinosL
194

Ahh encontró la solución después de intentarlo durante un par de horas.

  1. Google tarda un tiempo en procesar las aplicaciones y actualizarlas en sus servidores, para mí lleva aproximadamente medio día. Entonces, después de guardar el apk como borrador en Google Play, debe esperar unas horas antes de que los productos integrados en la aplicación respondan normalmente y permitan compras regulares.
  2. Exportar y firmar APK. El APK no firmado que intente realizar compras recibirá un error.
Portero
fuente
71
Wow, ¿esto es serio? Acabo de encontrarme con el mismo problema. Hizo todo lo que Google me pidió que hiciera para probar la facturación en la aplicación, pero seguía recibiendo el mismo mensaje de error evasivo. Supongo que tendré que esperar y ver. ¿Pero Google realmente espera que los desarrolladores esperemos horas cada vez que necesitemos actualizar nuestra aplicación para implementar la facturación en la aplicación? Me parece bastante inapropiado, por decir lo menos.
Simon
66
¿Puede probar mientras está conectado a Android Studio / ejecutar mientras está conectado al depurador? ¿O necesita instalar la versión apk a través de USB?
Alfie Hanssen
3
¿Existe una manera más fácil de probar el proceso de compra que no sea, Herramientas de Android> Exportar proyecto firmado ... etc., luego copiar manualmente el APK en el dispositivo, Prueba, ... repetir? ¿Debo estar perdiendo algo?
wired00
44
En serio, ¿no puedo usar la aplicación con certificado de depuración y probar la facturación en la aplicación?
TacB0sS
8
Tenga en cuenta que PUEDE usar compilaciones de depuración, directamente desde su IDE mientras trabaja. Solo necesita cambiar el almacén de claves de depuración a uno que coincida con su tienda de lanzamiento. Consulte esta publicación para obtener más información sobre cómo: stackoverflow.com/questions/10886814/…
cottonBallPaws
137

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"

sandalone
fuente
3
¿Me puede decir, por favor, qué pasa si la versión cargada es android:versionCode="1"y el teléfono está android:versionCode="2"bien o tengo que cambiar mi apk google play?
Youddh
1
Lo que debe hacer es reducir la versión local a "1" para que coincida con la versión en vivo actual, como mínimo temporalmente para la prueba.
Romain
2
Parece que hay 2 soluciones comunes a este error dependiendo de su situación. En mi caso fue este.
Matt
Gracias, este fue el problema. Estaba depurando bien con el lanzamiento de apk firmado en mi dispositivo conectado. Luego, cambió el código de versión y comenzó a recibir el error 1005. ¡Uf!
Anna Billstrom
@Anna tenga en cuenta que -1005 también está USER_CANCELLED si usa iabHelper
JacksOnF1re
47

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.purchasedcomo 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.

Chirag Patel
fuente
1
+1 La ejecución desde el depurador usa el certificado de depuración. Después de exportar la aplicación y crear una nueva clave pública (e instalarla en la consola del desarrollador), solo envíe por correo electrónico el apk e instálelo desde su bandeja de entrada de gmail.
cdavidyoung
Si quiero probar "android.test.purchased", ¿voy a cambiar el SKU tanto en mi código como en la consola del desarrollador?
Rocologo
26

En la consola del desarrollador:

Settings-> Account details-> License Testing-> Cuentas de Gmail con acceso de prueba

y escribe aquí tus cuentas

Pablo Cegarra
fuente
Funciona de maravilla.
Jordania
17

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".

Ley Giménez
fuente
1
¿Qué APK? Estoy usando AIDL, ¿todavía necesito hacer eso?
Zhen Liu
@ZhenLiu, supongo que no es necesario
Law Gimenez
Además, la aplicación ya no puede instalarse en el dispositivo por un medio diferente (es decir, Android Studio). La instalación / actualización desde Play Store funcionará, pero el IAP no lo hará; obtendrá el error de OP.
JDune
¿Cómo depuramos esto?
Oliver Dixon
3

Esto sucederá si usa una versión diferente de la apk que la de Google Play.

Amalka
fuente
3

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í.

  • Generado apk firmado de tipo de compilación 'lanzamiento'.
  • Instalado manualmente el apk.
Shree Harsha S
fuente
2

En mi caso, vi el mismo mensaje debido a las diferentes firmas de la apk instalada y una apk cargada en el mercado.

Gorgona
fuente
2

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:

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

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.

Epsilon3
fuente
1

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!

Søren
fuente
0

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.

Gal rom
fuente
0

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.

DZDomi
fuente
0

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.

JDenais
fuente
0

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

Configure gradlepara firmar su compilación de depuración para la depuración.

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}
Anoop M
fuente
0

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á!

Ali Akram
fuente
0

Tengo el mismo problema en moto c2 + en mi caso, es un problema del dispositivo una vez que reinicio, entonces se ejecutará perfecto ...

Sagar Pithiya
fuente