application d'installation bloquée par play protect

117

Lorsque vous essayez d'installer une application signée (app-release.apk), une alerte «Bloqué par Play Protect» s'affiche et l'application n'est pas installée. Cependant, une application non signée (app-debug.apk) peut être installée sans problème.

Le message d'erreur:

Play Protect ne reconnaît pas le développeur de cette application. Les applications de développeurs inconnus peuvent parfois être dangereuses.

Pourquoi cette erreur s'est-elle produite? Quelle est la solution?

image d'erreur

Mostafa Azadi
la source
2
J'ai également rencontré le même problème avec mon application. Bien que mon compte Google ait été suspendu lorsque j'ai essayé de publier mon application. Ce que je me rends compte, c'est que la liste de contrôle de Google Update Play Protect avec le nom du package suspendu et, par la suite, si vous essayez d'installer le même nom de package, Play Protect commencez à donner un faux avertissement. J'ai créé une nouvelle application avec le nom du package suspendu et uniquement l'activité principale et aucun autre code ajouté. Signé avec le keystore apk suspendu et essayé d'installer. La protection de jeu étonnamment a montré une alerte nuisible comme le montre votre question. J'ai également essayé de créer un nouveau package avec toutes les classes d'applications suspendues mais pas d'alerte par lecture.
Panache du
Voir la solution ici: stackoverflow.com/a/54976730/984471
Manohar Reddy Poreddy
le même problème pour moi, mais j'ai trouvé un autre Keystore qui n'a même pas publié d'application sur Google Play, signe l'application correctement, et cette boîte de dialogue n'apparaît pas! même si vous créez une nouvelle application, le problème est prêt à l'emploi. J'ai plusieurs applications et d'autres Keystore fonctionnent correctement avec ma nouvelle application! Je ne sais pas comment google décider du développeur d'applications inconnu! Je n'ai jamais de compte console Google Play.
hamed hosiny

Réponses:

61

J'ai trouvé la solution: allez sur le lien ci-dessous et soumettez votre candidature.

Formulaire de soumission d'appels Play Protect

Après quelques jours, le problème sera résolu

Mostafa Azadi
la source
3
@MostafaAzadi Quelle était la raison exacte?
Behnam Maboudi
3
si vous n'utilisez pas SSL et que vous avez activé les communications en texte brut sur le manifeste, c'est la raison.
DaniloDeQueiroz
1
si vous avez un problème par URL pour télécharger votre fichier APK, ceci est utile: stackoverflow.com/a/56513945/9710197
Mostafa Azadi
@DaniloDeQueiroz Êtes-vous absolument sûr que le problème est dû aux communications en texte clair? Donc, la suppression android:usesCleartextTraffic="true"devrait résoudre le problème, non? Merci.
AnthoPak
1
Bonjour. Je ne peux pas soumettre mon application pour faire appel à Play Protect. Comment télécharger l'apk? Je reçois un e-mail disant que l'apk ne peut pas être téléchargé, bien que je fournisse des liens de téléchargement directs via GitHub.
SayantanRC
40

J'ai trouvé la meilleure solution. Si vous voulez conquérir ce problème , vous devez ouvrir votre magasin de jeu, dans le menu trouver Jouer Protect ici et ici et désactivez l' option Analyser appareil pour détecter les menaces de sécurité .

molood ayat
la source
78
Ce n’est pas la solution. Lorsque nous devons distribuer une application au client ou à l'utilisateur (sans Playstore), nous ne pouvons pas l'utiliser
silwar
1
Merci, a bien fonctionné pour moi pour une solution rapide et unique pour une application à chargement latéral.
Günter Zöchbauer
1
@silwar je ne pense pas que le problème existe sur les appareils sans Play Store. Parce que le bloqueur est le Play Store.
Jemshit Iskenderov
@JemshitIskenderov Dans mon cas, c'était un problème de keystore corrompu .. Je l'ai changé pour mon application (application d'entreprise donc non publiée sur Playstore) et le problème a été résolu
silwar
1
Dans mon cas, le problème était d'utiliser les services de jeux Google pour des applications non publiées.
Sattar Hummatli
18

Essayez de créer un nouveau magasin de clés et de le remplacer par l'ancien, puis de reconstruire un nouvel APK signé.

Mise à jour: notez que si vous utilisez une connexion http avec un serveur, vous devez utiliser SSL.

Jetez un œil à: https://developer.android.com/distribute/best-practices/develop/understand-play-policies

Amirhosein Heydari
la source
2
C'est peut-être à cause de la validité maximale de la plupart des certificats achetés vers les dernières années. Définissez une date d'expiration supérieure à 50 ans.
Amirhosein Heydari
1
J'ai créé cette application ce mois-ci et j'ai fixé la validité (années) de la signature à 25 ans
Mostafa Azadi
1
@MostafaAzadi, Amirhosein J'ai le même problème ici. avez-vous trouvé quelque chose?
Behnam Maboudi
17
Ouais, ça semble ridicule. Le pire, c'est que je ne reçois cette fenêtre contextuelle que la première fois que j'installe l'application. Même si je l'accepte et l'installe, lors de la prochaine installation, il enregistre «Installation bloquée silencieusement» et j'obtiens un message «Application non installée» sur l'interface utilisateur. À ce stade, seule la désactivation complète de Play Protect ou la suppression des données Play Store des paramètres me permet de nouveau de s'afficher. Cela se produit avec une clé que nous avons générée avec le même script que des dizaines de nos autres applications qui se trouvent dans le Play Store et fonctionnent correctement.
zsmb13
8
Khosham miad faghat ma irani ha b hamchin moshkelayi bar mikhorim
MoHammaD ReZa DehGhani
12

Google play vous trouve en tant que développeur via votre keystore .

et peut-être que l'adresse IP de votre pays est interdite sur Google lorsque vous générez votre nouveau keystore.

changez votre adresse IP et générez un nouveau keystore, le problème sera résolu.

si vous ne réussissez pas, utilisez un autre Gmail dans Android Studio et générez un nouveau fichier de clés.

Meisam Beiranvand
la source
Avez-vous fait ce truc? parce que j'ai ce problème et que mes applications se sont authentifiées d'Iran et ne peuvent pas envoyer de demande d'appel, (elles ne peuvent pas la tester), alors comment puis-je le résoudre? merci mec
Nima habibkhoda
4
Cela n'a pas fonctionné pour moi! J'utilise keytool pour créer un keystore
Amir Shabani
11

Il existe trois options pour se débarrasser de cet avertissement:

  1. Vous devez désactiver Play Protect dans Play Store -> Play Protect -> Icône Paramètres -> Rechercher les menaces de sécurité sur le périphérique
  2. Publier l'application sur Google Play Store
  3. Soumettez un appel au Play Protect .
Ali
la source
7

J'ajoute cette réponse pour les autres qui recherchent toujours une solution à ce problème si vous ne souhaitez pas télécharger votre application sur Playstore, il existe temporairement une solution de contournement à ce problème.

Google fournit une API de vérification des dispositifs de sécurité que vous ne devez appeler qu'une seule fois dans votre application et après cela, votre application ne sera pas bloquée par play protect:

Voici les liens:

https://developer.android.com/training/safetynet/attestation#verify-attestation-response

Lien vers un exemple de projet de code:

https://github.com/googlesamples/android-play-safetynet

M. Patel
la source
1
@Ahmad bien sûr, cela fonctionne, tous mes collègues utilisent cette api pour résoudre le problème que nous avons remis plus de 20 apks différents aux clients jusqu'à présent et cela fonctionne parfaitement
M. Patel
2

la seule solution qui fonctionnait pour moi était d'utiliser java keytool et de générer un fichier. keystoreclasser la ligne de commande, puis utiliser ce .keystorefichier pour signer mon application

vous pouvez trouver le keytool java dans ce répertoire C:\Program Files\Java\jre7\bin

ouvrez une fenêtre de commande et passez à ce répertoire et entrez une commande comme celle-ci

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Keytool vous invite à fournir des mots de passe pour le keystore, votre nom, votre entreprise, etc. notez qu'à la dernière invite, vous devez entrer oui.

Il génère ensuite le fichier de clés sous la forme d'un fichier appelé my-release-key.keystore dans le répertoire dans lequel vous vous trouvez. Le fichier de clés et la clé sont protégés par les mots de passe que vous avez saisis. Le fichier de clés contient une seule clé, valable 10 000 jours. L'alias est un nom que vous utiliserez plus tard pour faire référence à ce fichier de clés lors de la signature de votre application.

Pour plus d'informations sur Keytool, consultez la documentation à l' adresse : http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

et pour plus d'informations sur la signature d'applications Android, rendez-vous ici: http://developer.android.com/tools/publishing/app-signing.html

Easazade
la source
3
s'il y a un vote négatif, j'aime savoir pourquoi. si je fais quelque chose de mal, j'aime savoir
easazade
2

Si vous utilisez des trackers comme google analyticsou amplitudeet que vous essayez de publier votre application sur une autre plate-forme que Google Play, cette erreur apparaît pour les utilisateurs. Il y a donc deux solutions possibles:

  1. Utilisez des trackers spéciaux dans votre application (firebase et appmetrica sont testés et sont ok)
  2. Libérez votre application dans Google Play
majran
la source
0

la solution réside dans la création d'une nouvelle clé lors de la génération de l'apk signé. cela a fonctionné pour moi sans problème.

  1. cliquez sur Build
  2. cliquez sur générer un bundle / APK signé ...
  3. choisissez soit Bundle / APK (dans mon cas, APK) et cliquez sur Suivant
  4. cliquez sur créer nouveau (assurez-vous d'avoir un chemin de keystore sur la machine)
  5. après tout, cliquez sur Terminer pour générer votre apk signé

lorsque vous installez, l'avertissement ne viendra pas.

KD MBEDOBE
la source
0

il est dû à l'expiration du certificat de débogage, supprimez simplement le debug.keystoresitué à

C:\Users\.android\

après cela, créez votre projet, les outils de génération régénéreront une nouvelle clé et cela fonctionnera correctement. voici une référence:

https://developer.android.com/studio/publish/app-signing
Jasbin Karki
la source
-1

Ce n'est pas la solution, mais vous pouvez utiliser la clé de débogage pour signer les versions de version afin d'éviter de bloquer l'installation à partir de Google Play Protect. Il semble que Play Protect ne prévienne pas les versions signées avec générées automatiquement debug.keystore.

Notez que vos versions de débogage ne sont pas non signées , elles sont simplement signées avec une clé de débogage .

Bien sûr, vous ne pouvez pas utiliser la version pour la distribution de production (Google Play, Amazon, etc.), mais cela vaut toujours la peine pour les tests internes de pré-production qui nécessitent une boucle de rétroaction à haute fréquence.

Vous pouvez ajouter une tâche pour construire la version avec debug.keystore en ajoutant la configuration dans build.gradle, quelque chose comme:

android {
  buildTypes {
    // add after the `release` definition
    releaseDebugKey { initWith release }
  }

  signingConfigs {
    // use debug.keystore for releaseDebugKey builds
    releaseDebugKey { initWith debug }
  }
}

puis exécutez ./gradlew assembleReleaseDebugKeypour créer une version de version avec la clé de débogage.

tnj
la source