Play Protect에 의해 차단 된 설치 앱
서명 된 애플리케이션 (app-release.apk)을 설치하려고 할 때 "Play Protect에 의해 차단됨"경고가 표시되고 앱이 설치되지 않습니다. 그러나 서명되지 않은 응용 프로그램 (app-debug.apk)은 문제없이 설치할 수 있습니다.
오류 메시지 :
Play 프로텍트가이 앱의 개발자를 인식하지 못합니다. 알 수없는 개발자의 앱은 때때로 안전하지 않을 수 있습니다.
이 오류가 발생한 이유는 무엇입니까? 해결책은 무엇입니까?
해결책을 찾았습니다. 아래 링크로 이동하여 신청서를 제출하십시오.
며칠 후 문제가 해결됩니다.
더 나은 해결책을 찾았습니다. 당신은 당신이 당신의 Play 스토어를 열해야이 문제를 정복 메뉴에서 찾으려면 보호 플레이 와
선택을 취소 기기에 보안 위협이 있는지 검색을 .
Try to create a new key store and replace with old one, then rebuild a new signed APK.
Update: Note that if you're using a http connection with server ,you should use SSL.
Take a look at: https://developer.android.com/distribute/best-practices/develop/understand-play-policies
Google play finds you as developer via your keystore.
and maybe your country IP is banned on Google when you generate your new keystore.
change your IP Address and generate new keystore, the problem will be fixed.
if you didn't succeed, use another Gmail in Android Studio and generate new keystore.
There are three options to get rid of this warning:
- You need to disable Play Protect in Play Store -> Play Protect -> Settings Icon -> Scan Device for security threats
- Publish app at Google Play Store
- Submit an Appeal to the Play Protect.
If you are using some trackers like google analytics
or amplitude
and you are trying to release your app in another platforms other than Google Play
, this errors appears for users. So there are two possible solutions:
- Use special trackers in your app (firebase and appmetrica are tested and are ok)
- Release your app in
Google Play
I am adding this answer for others who are still seeking a solution to this problem if you don't want to upload your app on playstore then temporarily there is a workaround for this problem.
Google is providing safety device verification api which you need to call only once in your application and after that your application will not be blocked by play protect:
Here are there the links:
https://developer.android.com/training/safetynet/attestation#verify-attestation-response
Link for sample code project:
https://github.com/googlesamples/android-play-safetynet
the solution lies in creating a new key when generating the signed apk. this worked for me without a fuss.
- click on Build
- click generate signed Bundle/APK...
- choose either Bundle / APK (in my case APK) and click Next
- click on create new (make sure you have a keystore path on the machine)
- after everything, click finish to generate your signed apk
when you install, the warning will not come.
the only solution worked for me was using java keytool and generating a .keystore
file the command line and then use that .keystore
file to sign my app
you can find the java keytool at this directory C:\Program Files\Java\jre7\bin
open a command window and switch to that directory and enter a command like this
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool prompts you to provide passwords for the keystore, your name , company etc . note that at the last prompt you need to enter yes.
It then generates the keystore as a file called my-release-key.keystore in the directory you're in. The keystore and key are protected by the passwords you entered. The keystore contains a single key, valid for 10000 days. The alias is a name that you — will use later, to refer to this keystore when signing your application.
For more information about Keytool, see the documentation at: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
and for more information on signing Android apps go here: http://developer.android.com/tools/publishing/app-signing.html
Not the solution, but you can use debug key for signing release builds to avoid blocking the installation from Google Play Protect. It looks like Play Protect doesn't warn for builds signed with automatically generated debug.keystore
.
Note that your debug builds are not unsigned, they are just signed with a debug key.
Of course, you cannot use the build for production distribution (Google Play, Amazon, etc.), but it's still worth for pre-production internal testing which requires a high-frequency feedback loop.
You can add a task to build release with debug.keystore by adding the configuration in build.gradle
, something like:
android {
buildTypes {
// add after the `release` definition
releaseDebugKey { initWith release }
}
signingConfigs {
// use debug.keystore for releaseDebugKey builds
releaseDebugKey { initWith debug }
}
}
then execute ./gradlew assembleReleaseDebugKey
to build a release build with debug key.
참고 URL : https://stackoverflow.com/questions/51080755/installation-app-blocked-by-play-protect
'developer tip' 카테고리의 다른 글
자바 : 재정의 된 메서드를 호출하는 슈퍼 메서드 호출 (0) | 2020.09.22 |
---|---|
시간이 아닌 DURATION 시간으로 작업 (0) | 2020.09.22 |
SQL Server 2005의 MySQL REPLACE INTO 구현? (0) | 2020.09.22 |
어느 것이 더 나은 H2 또는 HSQLDB입니까? (0) | 2020.09.22 |
Java에서 클래스 불변이란 무엇입니까? (0) | 2020.09.22 |