app di installazione bloccata da Play Protect


117

Quando si tenta di installare un'applicazione firmata (app-release.apk), viene visualizzato un avviso "Bloccato da Play Protect" e l'app non viene installata. Tuttavia, un'applicazione non firmata (app-debug.apk) può essere installata senza problemi.

Il messaggio di errore:

Play Protect non riconosce lo sviluppatore di questa app. A volte le app di sviluppatori sconosciuti possono non essere sicure.

Perché si è verificato questo errore? Qual è la soluzione?

immagine di Error


2
Ho anche riscontrato lo stesso problema con la mia app. Anche se il mio account Google è stato sospeso quando ho provato a pubblicare la mia app. Quello che mi rendo conto che l'aggiornamento di Google Play Protect check list con il nome del pacchetto sospeso e in seguito, se provi a installare lo stesso nome del pacchetto, Play Protect inizia a dare un avviso falso. Ho creato una nuova app con il nome del pacchetto sospeso e solo l'attività principale e nessun altro codice aggiunto. Firmato con keystore apk sospeso e tentato l'installazione. Sorprendentemente play protect ha mostrato un avviso dannoso come mostrato nella tua domanda. Ho anche provato a creare un nuovo pacchetto con tutte le classi di app sospese ma nessun avviso per gioco.
Panache


lo stesso problema per me ma ho trovato un altro Keystore che non ha nemmeno pubblicato l'app su Google Play, firma l'app correttamente e questa finestra di dialogo non viene visualizzata! anche se crei una nuova app hai il problema fuori dagli schemi. Ho più applicazioni e altri Keystore funzionano correttamente con la mia nuova app! Non so come decidere su Google lo sviluppatore di app sconosciute! Non ho mai un account su Google Play Console.
hamed hosiny

Risposte:


61

Ho trovato la soluzione: vai al link sottostante e invia la tua domanda.

Modulo di presentazione dei ricorsi di Play Protect

Dopo alcuni giorni, il problema verrà risolto


3
@MostafaAzadi Qual era il motivo esatto?
Behnam Maboudi

3
se non stai utilizzando SSL e hai abilitato le comunicazioni in testo normale su manifest, questo è il motivo.
DaniloDeQueiroz

1
se hai un problema con l'URL per scaricare il tuo file APK, questo è utile: stackoverflow.com/a/56513945/9710197
Mostafa Azadi

@DaniloDeQueiroz Sei assolutamente sicuro che il problema sia dovuto alle comunicazioni in chiaro? Quindi la rimozione android:usesCleartextTraffic="true"dovrebbe risolvere il problema, giusto? Grazie.
AnthoPak

1
Ciao. Non posso inviare la mia app per presentare ricorso per Play protect. Come caricare l'apk? Ricevo un'e-mail che dice che l'apk non può essere scaricato, sebbene fornisca collegamenti per il download diretto tramite GitHub.
SayantanRC

40

Ho trovato la soluzione migliore. Se si vuole conquistare questo problema si dovrebbe aprire il tuo negozio di gioco, nel menu di trovare Gioca Protect Qui e Qui e deselezionare dispositivo di scansione per le minacce alla sicurezza .


78
Questa non è la soluzione. Quando dobbiamo distribuire un'app al client o all'utente (senza playstore), non possiamo usarlo
silwar

1
Grazie, ha funzionato bene per me per una rapida soluzione una tantum per un'app con caricamento laterale.
Günter Zöchbauer

1
@silwar non penso che il problema esista su dispositivi senza Play Store. Perché blocker è il Play Store.
Jemshit Iskenderov

@JemshitIskenderov Nel mio caso si trattava di un problema di keystore corrotto .. L'ho cambiato per la mia app (app aziendale quindi non pubblicata su Playstore) e il problema è stato risolto
silwar

1
Nel mio caso, il problema stava utilizzando i servizi di gioco di Google per app non pubblicate.
Sattar Hummatli

18

Prova a creare un nuovo archivio chiavi e sostituiscilo con quello vecchio, quindi ricostruisci un nuovo APK firmato.

Aggiornamento: tieni presente che se stai utilizzando una connessione http con il server, dovresti utilizzare SSL.

Dai un'occhiata a: https://developer.android.com/distribute/best-practices/develop/understand-play-policies


2
Forse è perché la validità massima della maggior parte dei certificati acquistati è intorno agli ultimi anni. Impostare una data di scadenza maggiore di 50 anni.
Amirhosein Heydari il

1
Ho creato questa app questo mese e ho impostato la validità (anni) della firma 25 anni
Mostafa Azadi

1
@MostafaAzadi, Amirhosein Ho lo stesso problema qui. hai trovato qualcosa?
Behnam Maboudi

17
Sì, sembra ridicolo. Quel che è peggio è che ottengo questo popup solo la prima volta che installo l'applicazione. Anche se lo accetto e lo installo, alla successiva installazione registra "Installazione bloccata silenziosamente" e ricevo un messaggio "App non installata" sull'interfaccia utente. A quel punto, solo disabilitando completamente Play Protect o cancellando i dati del Play Store dalle impostazioni, il popup viene nuovamente visualizzato. Questo sta accadendo con una chiave che abbiamo generato con lo stesso script di dozzine di altre nostre app che si trovano nel Play Store e funzionano bene.
zsmb13

8
Khosham miad faghat ma irani ha b hamchin moshkelayi bar mikhorim
MoHammaD ReZa DehGhani

12

Google Play ti trova come sviluppatore tramite il tuo keystore .

e forse l'IP del tuo paese è vietato su Google quando generi il tuo nuovo keystore.

cambia il tuo indirizzo IP e genera un nuovo keystore, il problema sarà risolto.

se non sei riuscito, utilizza un altro Gmail in Android Studio e genera un nuovo keystore.


Hai fatto questa roba? perché ho questo problema e le mie applicazioni sono state autenticate dall'Iran e non posso inviare la domanda dall'appello (non possono testarlo), quindi come posso risolverlo? grazie amico
Nima habibkhoda

4
Non ha funzionato per me! Uso keytool per creare keystore
Amir Shabani

11

Sono disponibili tre opzioni per eliminare questo avviso:

  1. È necessario disabilitare Play Protect in Play Store -> Play Protect -> Icona Impostazioni -> Scansiona dispositivo per minacce alla sicurezza
  2. Pubblica l'app su Google Play Store
  3. Invia un ricorso a Play Protect .

7

Sto aggiungendo questa risposta per gli altri che stanno ancora cercando una soluzione a questo problema se non vuoi caricare la tua app su Playstore, allora temporaneamente c'è una soluzione per questo problema.

Google fornisce l'API di verifica del dispositivo di sicurezza che devi chiamare solo una volta nella tua applicazione, dopodiché la tua applicazione non verrà bloccata da Play Protect:

Ecco i link:

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

Link per il progetto di codice di esempio:

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


1
@ Ahmad naturalmente funziona, tutti i miei colleghi stanno usando questa API per risolvere il problema, abbiamo consegnato più di 20 diversi apk ai clienti fino ad ora e funziona perfettamente
Sig. Patel

2

l'unica soluzione ha funzionato per me è stata l'utilizzo di java keytool e la generazione di un file. keystorearchivia la riga di comando e poi usa quel .keystorefile per firmare la mia app

puoi trovare java keytool in questa directory C:\Program Files\Java\jre7\bin

apri una finestra di comando e passa a quella directory e inserisci un comando come questo

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

Keytool richiede di fornire le password per il keystore, il nome, la società, ecc. notare che all'ultimo prompt è necessario inserire sì.

Quindi genera il keystore come file chiamato my-release-key.keystore nella directory in cui ti trovi. Il keystore e la chiave sono protetti dalle password che hai inserito. Il keystore contiene una singola chiave, valida per 10000 giorni. L'alias è un nome che userete in seguito per fare riferimento a questo keystore quando firmerete la vostra applicazione.

Per ulteriori informazioni su Keytool, vedere la documentazione su: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

e per ulteriori informazioni sulla firma delle app Android, vai qui: http://developer.android.com/tools/publishing/app-signing.html


3
se c'è un voto negativo mi piace sapere perché. se sto facendo qualcosa di sbagliato mi piacerebbe sapere
easazade

2

Se stai utilizzando alcuni tracker come google analyticso amplitudee stai tentando di rilasciare la tua app su altre piattaforme diverse da Google Play, questo errore viene visualizzato per gli utenti. Quindi ci sono due possibili soluzioni:

  1. Usa tracker speciali nella tua app (firebase e appmetrica sono testati e sono ok)
  2. Rilascia la tua app in formato Google Play

0

la soluzione sta nel creare una nuova chiave quando si genera l'apk firmato. questo ha funzionato per me senza problemi.

  1. fare clic su Build
  2. fare clic su genera Bundle / APK firmato ...
  3. scegli Bundle / APK (nel mio caso APK) e fai clic su Avanti
  4. fai clic su crea nuovo (assicurati di avere un percorso di keystore sulla macchina)
  5. dopo tutto, fai clic su Fine per generare il tuo apk firmato

quando si installa, l'avviso non verrà visualizzato.


0

è dovuto alla scadenza del certificato di debug, eliminare semplicemente il file che si debug.keystoretrova in

C:\Users\.android\

dopo di che crea il tuo progetto, gli strumenti di costruzione rigenereranno una nuova chiave e funzionerà bene. ecco un riferimento:

https://developer.android.com/studio/publish/app-signing

-1

Non è la soluzione, ma puoi utilizzare la chiave di debug per firmare build di rilascio per evitare di bloccare l'installazione da Google Play Protect. Sembra che Play Protect non avvisi le build firmate con generate automaticamente debug.keystore.

Nota che le tue build di debug non sono prive di segno , sono solo firmate con una chiave di debug .

Ovviamente, non è possibile utilizzare la build per la distribuzione in produzione (Google Play, Amazon, ecc.), Ma vale comunque la pena per i test interni di pre-produzione che richiedono un ciclo di feedback ad alta frequenza.

Puoi aggiungere un'attività per creare il rilascio con debug.keystore aggiungendo la configurazione build.gradle, qualcosa come:

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

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

quindi eseguire ./gradlew assembleReleaseDebugKeyper creare una build di rilascio con la chiave di debug.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.