protect play para instalar gratis google descargar android google-play android-security

android - para - google play protect play store



Google Play advierte la implementación incorrecta de Google Play inApp Billing (11)

Acabo de recibir el siguiente correo electrónico de Google Play.

''Hola desarrollador de Google Play,

Detectamos que su (s) aplicación (es) enumerada (s) al final de este correo electrónico está invocando el servicio de facturación dentro de la aplicación sin establecer un paquete objetivo para la intención. Esto puede permitir que un paquete malicioso pase por alto el sistema de facturación de Play Store y acceda a artículos que no se hayan comprado.

Próximos pasos

Si está utilizando IabHelper, comience a usar el último SDK. Si está invocando manualmente el servicio de facturación en la aplicación, asegúrese de llamar a Intent.setPackage ("com.android.vending") en cualquier intento a "com.android.vending.billing.InAppBillingService.BIND". Inicie sesión en su Consola de desarrollador y envíe la versión actualizada de su aplicación. Vuelve después de cinco horas: mostraremos un mensaje de advertencia si la aplicación no se ha actualizado correctamente ".

No estoy seguro de cuál es la solución para este problema. ¿Alguien puede decir dónde especificar el código? ¿Está en algún lugar de la clase de Java o el manifiesto?


Busque en todo el repositorio de código la siguiente declaración de código.

Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");

Siempre que haya utilizado la intención anterior, no olvide agregar este código debajo de serviceIntent.setPackage("com.android.vending");

Hubo dos ocurrencias de la intención anterior en mi base de código completa, una estaba en el archivo java de IabHelper si usas la última versión en sdk de facturación de aplicaciones, esta declaración ya se agregaría, Otra ocurrencia, usé esta intención para verificar si InApp Billing el servicio estaba disponible, olvidé agregar el serviceIntent.setPackage("com.android.vending"); Una vez que me di cuenta de eso y actualicé mi aplicación en la consola de desarrolladores, el mensaje de advertencia se eliminó después de unas horas.


Debe actualizar sus archivos IabHelper con el último SDK de:

https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util

Cuando sobrescriba archivos antiguos, Eclipse o Android Studio mostrará errores y tendrá que corregirlos, por ejemplo, agregue try catch catch, o agregue un parámetro a la función queryInventory.

Recuerde actualizar el nombre del paquete en nuevos archivos si lo cambió.

EDITAR: También, finalmente, necesito la actualización google_play_services.jar lib incluida en mi proyecto. Después de actualizar esta alerta se ha ocultado la alerta. Estaba usando una versión anterior del servicio de Google Play. Ahora estoy usando la versión rev 28.


Finalmente logré resolver esto. Primero había actualizado IabHelper, pero eso no ayudó. Entonces me di cuenta de que una compilación de dependencias ''com.google.android.gms: play-services: 6.1.71'' en build.gradle. Cambié esto a com.google.android.gms: play-services: 9.4.0. Esto estaba causando muchos errores de compilación. Pero luego, en lugar de usar la versión 9.4.0 de play-services, usé los servicios individuales de google de la versión 9.4.0. En mi caso, es solo com.google.android.gms: play-services-auth: 9.4.0 y com.google.android.gms: play-services-drive: 9.4.0. Esto da solo unos pocos errores de compilación que he corregido en el código. Esto entonces empujé en Google Play como alfa, esperé 2 días. La alerta de advertencia no apareció para la compilación que cargué.

Gracias.

Edit: no creo que tengamos que cambiar IabHelper.java siempre que esté configurando setPackage ("com.android.vending"). Revertí IabHelper.java y cargué una compilación solo con la versión 9.4.0 de play-services-drive-drive y play-services-auth. No lanzó advertencia.


Hay tres puntos para resolver este problema.

  1. Encuentre com.android.vending.billing.InAppBillingService.BIND en sus códigos. Deje que cada Intento a esto llame al método Intent.setPackage(“com.android.vending”).
  2. Actualizar el SDK de IabHelper .
  3. Actualizar el proyecto de la biblioteca de Google Play Service. Asegúrese de que estas cosas se hacen correctamente. Cada punto que se deshace conduce a este problema. Si el problema persiste, quizás haya algún problema con otros archivos en su proyecto.

La solución estará en tu Java. Busque en su base de código un Intent con la acción "com.android.vending.billing.InAppBillingService.BIND" , ya sea Intent.setAction() en el constructor o configurada a través de Intent.setAction() . Antes de llamar a bindService() con esa intención, debe establecer explícitamente el paquete a través de Intent.setPackage() .

Aquí está el código de ejemplo de Google como referencia: https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper.java#L296


Recibí la misma advertencia hace unos días y ya estaba configurando el paquete para la intención de esta manera:

Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); serviceIntent.setPackage("com.android.vending"); bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);

El problema ha desaparecido al actualizar a las últimas versiones de Google Play Services y apuntar a Lollipop (5.1) en lugar de KitKat (4.4) ... si está utilizando alguna Google Play Apis, asegúrese de actualizarlas a las versiones más recientes y, con suerte Eso lo arreglará para ti también.


Recibí la misma advertencia. Ya estaba configurando el paquete al vincular el InAppBillingService pero encontré que estaba comprobando si el InAppBillingService existe así:

boolean inAppBillingAvailable = !getPackageManager().queryIntentServices(new Intent("com.android.vending.billing.InAppBillingService.BIND"), 0).isEmpty();

Asegúrese de que también está configurando el paquete aquí:

boolean inAppBillingAvailable = !getPackageManager().queryIntentServices(new Intent("com.android.vending.billing.InAppBillingService.BIND").setPackage("com.android.vending"), 0).isEmpty();


También hemos recibido esta alerta, y hemos comprobado nuestros apks. Encontramos que la versión antigua de Google-Play-Service.jar parece usar la intención para "com.android.vending.billing.InAppBillingService.BIND", sin la configuración setPackage.

También hemos revisado la última versión de Google-Play-Service.jar y esta estaba bien, por lo que sugeriría revisar su biblioteca.


Todas las respuestas son correctas. Lo que hice fue actualizar los servicios de Google Play y IAB helper y, en lugar de utilizar IAB helper, encontré el método descrito en Google en el tutorial de compras de la aplicación y solucioné las notificaciones.


Tuve este problema y no podía costear la actualización de nuestro antiguo oleoducto basado en eclipse. Básicamente, descompilé la biblioteca del servicio Google Play, reparé las vulnerabilidades en eb.java y dx.java, volví a compilar esos dos archivos y los puse en el archivo JAR original. Esto se explica en mi blog .


No probó esta solución pero aún podría intentarlo: reemplace serviceIntent.setPackage("com.android.vending"); con serviceIntent.setPackage("com.android.vending.billing.InAppBillingService.BIND"); en https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper.java#L297 o en cualquier lugar que tenga cosa setpackage. Aclamaciones.

ACTUALIZACIÓN : Simplemente actualice la librería de Google Play Services, funcionó para mí. Aclamaciones.