Podczas próby zainstalowania podpisanej aplikacji (app-release.apk) wyświetlany jest alert „Zablokowany przez Play Protect”, a aplikacja nie jest instalowana. Jednak niepodpisaną aplikację (app-debug.apk) można zainstalować bez problemów.
Komunikat o błędzie:
Play Protect nie rozpoznaje dewelopera tej aplikacji. Aplikacje od nieznanych programistów mogą czasami być niebezpieczne.
Dlaczego wystąpił ten błąd? Jakie jest rozwiązanie?
android
signature
google-play-protect
Mostafa Azadi
źródło
źródło
Odpowiedzi:
Znalazłem rozwiązanie: przejdź do poniższego łącza i prześlij swoją aplikację.
Formularz przesyłania odwołań w Play Protect
Po kilku dniach problem zostanie rozwiązany
źródło
android:usesCleartextTraffic="true"
powinno rozwiązać problem, prawda? Dzięki.Znalazłem lepsze rozwiązanie. Jeśli chcesz zdobyć ten problem należy otworzyć swój sklep Play, w menu znaleźć Zagraj Protect i odznacz urządzenia do skanowania w poszukiwaniu zagrożeń bezpieczeństwa .
źródło
Spróbuj utworzyć nowy magazyn kluczy i zastąpić starym, a następnie odbudować nowy podpisany plik APK.
Aktualizacja: Pamiętaj, że jeśli korzystasz z połączenia http z serwerem, powinieneś użyć SSL.
Spójrz na: https://developer.android.com/distribute/best-practices/develop/understand-play-policies
źródło
Google Play znajduje Cię jako programistę za pośrednictwem Twojego magazynu kluczy .
a być może adres IP Twojego kraju jest zablokowany w Google, gdy generujesz nowy magazyn kluczy.
zmień swój adres IP i wygeneruj nowy magazyn kluczy, problem zostanie rozwiązany.
jeśli ci się nie udało, użyj innego Gmaila w Android Studio i wygeneruj nowy magazyn kluczy.
źródło
Istnieją trzy możliwości pozbycia się tego ostrzeżenia:
źródło
Dodaję tę odpowiedź dla innych, którzy wciąż szukają rozwiązania tego problemu, jeśli nie chcesz przesyłać swojej aplikacji do sklepu playstore, a tymczasowo istnieje obejście tego problemu.
Google udostępnia interfejs API do weryfikacji urządzeń zabezpieczających, który należy wywołać tylko raz w aplikacji, a następnie aplikacja nie zostanie zablokowana przez Play Protect:
Oto linki:
https://developer.android.com/training/safetynet/attestation#verify-attestation-response
Link do przykładowego projektu kodu:
https://github.com/googlesamples/android-play-safetynet
źródło
jedynym rozwiązaniem działającym dla mnie było użycie narzędzia Java Keytool i wygenerowanie pliku.
keystore
plik wiersza poleceń, a następnie użyj tego.keystore
pliku do podpisania mojej aplikacjiMożesz znaleźć keytool java w tym katalogu
C:\Program Files\Java\jre7\bin
otwórz okno poleceń, przejdź do tego katalogu i wprowadź takie polecenie
Keytool wyświetla monit o podanie haseł do magazynu kluczy, imienia i nazwiska, firmy itp. zwróć uwagę, że w ostatnim monicie musisz wpisać tak.
Następnie generuje magazyn kluczy jako plik o nazwie my-release-key.keystore w katalogu, w którym się znajdujesz. Magazyn kluczy i klucz są chronione przez wprowadzone hasła. Magazyn kluczy zawiera pojedynczy klucz ważny przez 10000 dni. Alias to nazwa, której będziesz używać później, aby odwołać się do tego magazynu kluczy podczas podpisywania aplikacji.
Więcej informacji na temat narzędzia Keytool można znaleźć w dokumentacji pod adresem : http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
a więcej informacji na temat podpisywania aplikacji na Androida znajdziesz tutaj: http://developer.android.com/tools/publishing/app-signing.html
źródło
Jeśli używasz niektórych trackerów, takich jak
google analytics
lub,amplitude
i próbujesz wydać swoją aplikację na platformach innych niżGoogle Play
, ten błąd pojawia się dla użytkowników. Istnieją więc dwa możliwe rozwiązania:Google Play
źródło
rozwiązanie polega na utworzeniu nowego klucza podczas generowania podpisanego pliku APK. to działało dla mnie bez zamieszania.
podczas instalacji ostrzeżenie nie nadejdzie.
źródło
ponieważ wygasł certyfikat debugowania, po prostu usuń plik
debug.keystore
znajdujący się wpo tym skompiluj projekt, narzędzia kompilacji zregenerują nowy klucz i będzie działać poprawnie. tutaj jest odniesienie:
źródło
Nie jest to rozwiązanie, ale możesz użyć klucza debugowania do podpisywania wersji wydania, aby uniknąć blokowania instalacji z Google Play Protect. Wygląda na to, że Play Protect nie ostrzega o kompilacjach podpisanych automatycznie
debug.keystore
.Zauważ, że twoje kompilacje debugowania nie są niepodpisane , są po prostu podpisane kluczem debugowania .
Oczywiście nie można użyć kompilacji do dystrybucji produkcyjnej (Google Play, Amazon itp.), Ale nadal warto przeprowadzić wewnętrzne testy przedprodukcyjne, które wymagają pętli sprzężenia zwrotnego o wysokiej częstotliwości.
Możesz dodać zadanie do kompilacji wydania za pomocą debug.keystore, dodając konfigurację
build.gradle
, na przykład:następnie wykonaj,
./gradlew assembleReleaseDebugKey
aby zbudować kompilację wydania z kluczem debugowania.źródło