aplicativo de instalação bloqueado por proteção de jogo

117

Ao tentar instalar um aplicativo assinado (app-release.apk), um alerta "Bloqueado pelo Play Protect" é mostrado e o aplicativo não é instalado. No entanto, um aplicativo não assinado (app-debug.apk) pode ser instalado sem problemas.

A mensagem de erro:

O Play Protect não reconhece o desenvolvedor deste app. Aplicativos de desenvolvedores desconhecidos às vezes podem ser inseguros.

Por que esse erro aconteceu? Qual é a solução?

imagem de erro

Mostafa Azadi
fonte
2
Eu também enfrentei o mesmo problema com meu aplicativo. Embora minha conta do Google tenha sido suspensa quando tentei publicar meu aplicativo. O que eu percebi é que o google update play protege a lista de verificação com o nome do pacote suspenso e depois, se você tentar instalar o mesmo nome do pacote, play protect começa dando um aviso falso. Criei um novo aplicativo com o nome do pacote suspenso e apenas a atividade principal e nenhum outro código adicionado. Assinado com keystore apk suspenso e tentei instalar. Surpreendentemente, o jogo de proteção mostrou alerta prejudicial como mostrado em sua pergunta. Também tentei fazer um novo pacote com todas as classes de aplicativos suspensos, mas nenhum alerta por jogo.
Panache
Veja a solução aqui: stackoverflow.com/a/54976730/984471
Manohar Reddy Poreddy
o mesmo problema para mim, mas encontrei outro Keystore que nem mesmo publicou o aplicativo no Google Play, assine o aplicativo corretamente e esta caixa de diálogo não aparecerá! mesmo se você criar um novo aplicativo, o problema é imediato. Tenho vários aplicativos e outro Keystore funciona corretamente com meu novo aplicativo! Não sei como google decidir o desenvolvedor de apps desconhecido! Eu nunca tenho uma conta de console do Google Play.
hamed hosiny

Respostas:

61

Encontrei a solução: Acesse o link abaixo e envie sua inscrição.

Formulário de envio de apelações do Play Protect

Depois de alguns dias, o problema será corrigido

Mostafa Azadi
fonte
3
@MostafaAzadi Qual foi o motivo exato?
Behnam Maboudi 01 de
3
se você não está usando SSL e habilitou as comunicações de texto simples no manifesto, esse é o motivo.
DaniloDeQueiroz
1
se você tiver um problema de URL para baixar seu arquivo APK, isto é útil: stackoverflow.com/a/56513945/9710197
Mostafa Azadi
@DaniloDeQueiroz Você tem certeza absoluta de que o problema é devido a comunicações em texto não criptografado? Portanto, a remoção android:usesCleartextTraffic="true"deve resolver o problema, certo? Obrigado.
AnthoPak
1
Olá. Não posso enviar meu aplicativo para apelar do Play Protect. Como fazer upload do apk? Estou recebendo um e-mail informando que o apk não pode ser baixado, embora esteja fornecendo links diretos para download via GitHub.
SayantanRC
40

Encontrei a melhor solução. Se você quer conquistar este problema você deve abrir sua loja de jogo, no menu de encontrar Jogar Protect aqui e aqui e desmarque dispositivo de varredura para ameaças de segurança .

Molood ayat
fonte
78
Esta não é a solução. Quando temos que distribuir um aplicativo para o cliente ou usuário (sem playstore), não podemos usar isso
silwar
1
Obrigado, funcionou bem para mim para uma solução rápida e única para um aplicativo side-carregado.
Günter Zöchbauer
1
@silwar Não acho que exista problema em dispositivos sem play store. Porque o bloqueador é a Play Store.
Jemshit Iskenderov
@JemshitIskenderov No meu caso, era um problema de armazenamento de chave corrompido. Eu mudei para meu aplicativo (aplicativo corporativo, não foi publicado na playstore) e o problema foi corrigido
silwar
1
No meu caso, o problema era usar os serviços de jogos do Google para aplicativos não publicados.
Sattar Hummatli
18

Tente criar um novo armazenamento de chaves e substitua-o por um antigo e, em seguida, reconstrua um novo APK assinado.

Atualização: Observe que se estiver usando uma conexão http com o servidor, você deve usar SSL.

Dê uma olhada em: https://developer.android.com/distribute/best-practices/develop/understand-play-policies

Amirhosein Heydari
fonte
2
Talvez seja por causa da validade máxima da maioria dos certificados adquiridos nos últimos anos. Defina uma data de expiração superior a 50 anos.
Amirhosein Heydari
1
Criei este aplicativo este mês e configurei a validade (anos) da assinatura para 25 anos
Mostafa Azadi
1
@MostafaAzadi, Amirhosein Tenho o mesmo problema aqui. você encontrou alguma coisa?
Behnam Maboudi
17
Sim, parece ridículo. O pior é que só recebo esse pop-up na primeira vez que instalo o aplicativo. Mesmo que eu o aceite e instale, na próxima instalação ele registra "Instalação bloqueada silenciosamente" e recebo uma mensagem "Aplicativo não instalado" na IU. Nesse ponto, apenas desabilitar o Play Protect completamente ou limpar os dados da Play Store das configurações me abre o pop-up novamente. Isso está acontecendo com uma chave que geramos com o mesmo script de dezenas de outros aplicativos que estão na Play Store e funcionando bem.
zsmb13
8
Khosham miad faghat ma irani ha b hamchin moshkelayi bar mikhorim
MoHammaD ReZa DehGhani
12

O Google play encontra você como desenvolvedor por meio de seu armazenamento de chaves .

e talvez o IP do seu país seja banido do Google quando você gerar seu novo armazenamento de chaves.

mude seu endereço IP e gere um novo armazenamento de chaves, o problema será corrigido.

se você não teve sucesso, use outro Gmail no Android Studio e gere um novo armazenamento de chaves.

Meisam Beiranvand
fonte
Você fez essas coisas? Porque eu tenho esse problema e meu aplicativo foi autenticado do Irã e não posso enviar o aplicativo do recurso (eles não podem testá-lo), então como posso resolver isso? obrigado cara
Nima habibkhoda
4
Não funcionou para mim! Eu uso o keytool para criar o keystore
Amir Shabani de
11

Existem três opções para se livrar deste aviso:

  1. Você precisa desativar o Play Protect na Play Store -> Play Protect -> Ícone de configurações -> Verificar dispositivo em busca de ameaças de segurança
  2. Publique o aplicativo na Google Play Store
  3. Envie uma apelação ao Play Protect .
Todos
fonte
7

Estou adicionando esta resposta para outras pessoas que ainda estão procurando uma solução para este problema, se você não quiser carregar seu aplicativo na playstore, então há temporariamente uma solução alternativa para este problema.

O Google está fornecendo uma API de verificação de dispositivo de segurança, para a qual você precisa ligar apenas uma vez em seu aplicativo e, depois disso, seu aplicativo não será bloqueado pelo play protect:

Aqui estão os links:

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

Link para amostra de projeto de código:

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

Sr. Patel
fonte
1
@Ahmad, é claro que funciona, todos os meus colegas estão usando essa API para resolver o problema. Já entregamos mais de 20 apks diferentes para clientes até agora e funciona perfeitamente
Sr. Patel,
2

a única solução funcionou para mim usando java keytool e gerando um. keystorearquivo a linha de comando e, em seguida, use esse .keystorearquivo para assinar meu aplicativo

você pode encontrar o keytool java neste diretório C:\Program Files\Java\jre7\bin

abra uma janela de comando e mude para esse diretório e digite um comando como este

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

O Keytool solicita que você forneça senhas para o armazenamento de chaves, seu nome, empresa, etc. observe que, no último prompt, você precisa inserir sim.

Em seguida, ele gera o armazenamento de chaves como um arquivo chamado my-release-key.keystore no diretório em que você está. O armazenamento de chaves e a chave são protegidos pelas senhas que você inseriu. O keystore contém uma única chave, válida por 10.000 dias. O alias é um nome que você usará posteriormente para se referir a este armazenamento de chaves ao assinar seu aplicativo.

Para obter mais informações sobre o Keytool, consulte a documentação em: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

e para obter mais informações sobre como assinar aplicativos Android, acesse: http://developer.android.com/tools/publishing/app-signing.html

easazade
fonte
3
se houver um downvote, eu gostaria de saber por quê. se estou fazendo algo errado, gosto de saber
easazade
2

Se você estiver usando alguns rastreadores como google analyticsou amplitudee estiver tentando lançar seu aplicativo em outras plataformas Google Play, este erro aparecerá para os usuários. Portanto, existem duas soluções possíveis:

  1. Use rastreadores especiais em seu aplicativo (firebase e appmetrica foram testados e estão ok)
  2. Libere seu aplicativo em Google Play
Majran
fonte
0

a solução está em criar uma nova chave ao gerar o apk assinado. isso funcionou para mim sem problemas.

  1. clique em Build
  2. clique em gerar pacote / APK assinado ...
  3. escolha Bundle / APK (no meu caso, APK) e clique em Avançar
  4. clique em criar novo (certifique-se de ter um caminho de armazenamento de chave na máquina)
  5. depois de tudo, clique em concluir para gerar seu apk assinado

quando você instala, o aviso não virá.

KD MBEDOBE
fonte
0

é devido ao certificado de depuração expirado, basta excluir o debug.keystorelocalizado em

C:\Users\.android\

depois que compilar seu projeto, as ferramentas de compilação irão regenerar uma nova chave e funcionará bem. aqui está uma referência:

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

Não é a solução, mas você pode usar a chave de depuração para assinar versões de lançamento para evitar o bloqueio da instalação do Google Play Protect. Parece que o Play Protect não avisa para compilações assinadas com geradas automaticamente debug.keystore.

Observe que suas compilações de depuração não são sem assinatura , elas são apenas assinadas com uma chave de depuração .

Claro, você não pode usar a construção para distribuição de produção (Google Play, Amazon, etc.), mas ainda vale a pena para testes internos de pré-produção que requerem um loop de feedback de alta frequência.

Você pode adicionar uma tarefa para compilar a versão com debug.keystore adicionando a configuração em build.gradle, algo como:

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

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

em seguida, execute ./gradlew assembleReleaseDebugKeypara construir uma versão de lançamento com a chave de depuração.

tnj
fonte