安装应用程序被播放保护阻止
installation app blocked by play protect
当尝试安装已签名的应用程序 (app-release.apk) 时,会显示 "Blocked by Play Protect" 警告并且应用程序未安装。但是,未签名的应用程序 (app-debug.apk) 可以毫无问题地安装。
错误信息:
Play Protect doesn't recognise this app's developer. Apps from unknown developers can sometimes be unsafe.
为什么会出现这个错误?有什么解决办法?
尝试创建一个新的密钥库并用旧的替换,然后重建一个新的签名 APK。
更新:请注意,如果您使用与服务器的 http 连接,则应使用 SSL。
看看:https://developer.android.com/distribute/best-practices/develop/understand-play-policies
我找到了解决方案:
转到下面的 link 并提交您的申请。
Play Protect Appeals Submission Form
过几天,问题就会解决
Google play 通过您的密钥库.
找到您作为开发者
当您生成新的密钥库时,也许您的国家/地区 IP 在 Google 上被禁止。
更改您的 IP 地址并生成新的密钥库,问题将得到解决。
如果您没有成功,请在 Android Studio 中使用另一个 Gmail 并生成新的密钥库。
解决方法是在生成签名 apk 时创建一个新密钥。
这对我来说毫不费力。
- 点击构建
- 点击生成签名 Bundle/APK...
- 选择 Bundle / APK(在我的例子中是 APK)并点击 Next
- 点击新建(确保您的机器上有密钥库路径)
- 完成所有操作后,单击“完成”以生成您签名的 apk
安装时不会出现警告。
唯一对我有用的解决方案是使用 java keytool 并在命令行生成一个 .keystore
文件,然后使用该 .keystore
文件签署我的应用程序
您可以在此目录中找到 java 密钥工具 C:\Program Files\Java\jre7\bin
打开命令window并切换到该目录并输入这样的命令
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool 会提示您提供密钥库的密码、您的姓名、公司等。请注意,在最后的提示中您需要输入 yes。
然后它会在您所在的目录中将密钥库生成为名为 my-release-key.keystore 的文件。密钥库和密钥受您输入的密码保护。密钥库包含一个密钥,有效期为 10000 天。别名是您稍后将使用的名称,用于在签署您的应用程序时引用此密钥库。
有关 Keytool 的更多信息,请参阅文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
有关签署 Android 应用程序的更多信息,请访问此处:http://developer.android.com/tools/publishing/app-signing.html
如果您正在使用 google analytics
或 amplitude
等跟踪器,并且您正尝试在 Google Play
以外的其他平台上发布您的应用程序,则会向用户显示此错误。所以有两种可能的解决方案:
- 在您的应用中使用特殊的跟踪器(firebase 和 appmetrica 已经过测试并且可以)
- 在
Google Play
中发布您的应用
不是解决方案,但您可以使用调试密钥签署 release 版本以避免阻止 Google Play Protect 的安装。 Play Protect 似乎不会对使用自动生成的 debug.keystore
.
签名的构建发出警告
请注意,您的调试版本不是 未签名,它们只是使用 debug 密钥签名。
当然,您不能将该构建用于生产分发(Google Play、亚马逊等),但它仍然值得用于需要高频反馈循环的预生产内部测试。
您可以通过在 build.gradle
中添加配置来添加任务以使用 debug.keystore 构建版本,例如:
android {
buildTypes {
// add after the `release` definition
releaseDebugKey { initWith release }
}
signingConfigs {
// use debug.keystore for releaseDebugKey builds
releaseDebugKey { initWith debug }
}
}
然后执行 ./gradlew assembleReleaseDebugKey
以使用调试密钥构建发布版本。
可以通过三个选项来消除此警告:
- 您需要在 Play Store -> Play Protect -> 设置图标 -> Scan Device for security threats 中禁用 Play Protect
- 在 Google Play 商店
发布应用
- 提交 Appeal to the Play Protect.
如果您不想在 Playstore 上上传您的应用,那么我正在为仍在寻求解决此问题的其他人添加此答案,然后暂时有解决此问题的方法。
Google 正在提供安全设备验证 api,您只需在您的应用程序中调用一次,之后您的应用程序将不会被播放保护阻止:
这里有链接:
https://developer.android.com/training/safetynet/attestation#verify-attestation-response
Link 示例代码项目:
这是由于调试证书过期
只需删除位于
的 debug.keystore
C:\Users\.android\
构建您的项目后,构建工具将重新生成一个新密钥,它会正常工作。
这里有一个参考:
https://developer.android.com/studio/publish/app-signing
我根据签名证书的详细信息更改了我的应用程序包名称,从而解决了这个问题。起初我用 com.foo.xyz 创建了应用程序
但我的证书组织是 'bar'。所以我将我的包名称更改为 com.bar.xyz,现在没有 google play protect 警告!
没有非常精确的方法来解决这个问题,但以下任务可以有效解决问题
点击无效Caches/Restart
做Android工作室的登录过程
点击生成签名包/APK
完整填写所有“生成签名的Bundle”信息。
不要使用相同的密码。确保您的密码与
“生成签名包”
不同的。最好输入美国地址01
估计是对波斯语敏感,程序里最好不要写波斯语。程序菜单用英文写,下次更新改成波斯语
删除额外权限
最后,请访问以下站点并请求故障排除
https://support.google.com/googleplay/android-developer/answer/2992033?hl=en
正确填写名字和姓氏
上传安装文件,例如,在 Dropbox 中,然后复制 link
如果您使用的是 Dropbox,请务必将 zero 末尾的数字更改为
link 到 一个 ,然后提交或使用 link 缩短网站。
如果您的请求未获批准,请缩短安装文件的link,因为
例如,使用 https://bit.ly 网站
在描述部分,说明问题。为了您的方便,我会
为您留下示例文本:
Greetings to the esteemed Google Team
I am sending this request to fix the "Blocked by Pay Protect" error
****{Write your app info and your reasons}****
Fast, simple, free and lightweight, no annoying ads ,This app does not collect and store user data!
Also, no unnecessary cost is imposed on the user and is completely free , It
also certifies that this app does not harm user privacy and is not harmful to users
Thank you
如果您没有收到确认邮件,请过几天再重复请求
如果硬件发生变化,请尝试重新下载或重新创建 jks 文件。
我也遇到过这样的问题,是将我的SSD从一台PC移到另一台PC后出现的。这暗示无需将应用程序发送到 Google 进行验证:正在安装旧的 apk 文件,没有任何警告。所以我用云端的替换了我硬盘上的 android.jks,创建了一个签名的 apk,问题就解决了。
在真实设备上安装我的应用程序进行调试后,我一直遇到这个问题。
问题是我在清单文件的主要 activity 上有 android:exported="true"
属性。我删除了它,Play Protect 警告消失了。
当尝试安装已签名的应用程序 (app-release.apk) 时,会显示 "Blocked by Play Protect" 警告并且应用程序未安装。但是,未签名的应用程序 (app-debug.apk) 可以毫无问题地安装。
错误信息:
Play Protect doesn't recognise this app's developer. Apps from unknown developers can sometimes be unsafe.
为什么会出现这个错误?有什么解决办法?
尝试创建一个新的密钥库并用旧的替换,然后重建一个新的签名 APK。
更新:请注意,如果您使用与服务器的 http 连接,则应使用 SSL。
看看:https://developer.android.com/distribute/best-practices/develop/understand-play-policies
我找到了解决方案: 转到下面的 link 并提交您的申请。
Play Protect Appeals Submission Form
过几天,问题就会解决
Google play 通过您的密钥库.
找到您作为开发者当您生成新的密钥库时,也许您的国家/地区 IP 在 Google 上被禁止。
更改您的 IP 地址并生成新的密钥库,问题将得到解决。
如果您没有成功,请在 Android Studio 中使用另一个 Gmail 并生成新的密钥库。
解决方法是在生成签名 apk 时创建一个新密钥。 这对我来说毫不费力。
- 点击构建
- 点击生成签名 Bundle/APK...
- 选择 Bundle / APK(在我的例子中是 APK)并点击 Next
- 点击新建(确保您的机器上有密钥库路径)
- 完成所有操作后,单击“完成”以生成您签名的 apk
安装时不会出现警告。
唯一对我有用的解决方案是使用 java keytool 并在命令行生成一个 .keystore
文件,然后使用该 .keystore
文件签署我的应用程序
您可以在此目录中找到 java 密钥工具 C:\Program Files\Java\jre7\bin
打开命令window并切换到该目录并输入这样的命令
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool 会提示您提供密钥库的密码、您的姓名、公司等。请注意,在最后的提示中您需要输入 yes。
然后它会在您所在的目录中将密钥库生成为名为 my-release-key.keystore 的文件。密钥库和密钥受您输入的密码保护。密钥库包含一个密钥,有效期为 10000 天。别名是您稍后将使用的名称,用于在签署您的应用程序时引用此密钥库。
有关 Keytool 的更多信息,请参阅文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
有关签署 Android 应用程序的更多信息,请访问此处:http://developer.android.com/tools/publishing/app-signing.html
如果您正在使用 google analytics
或 amplitude
等跟踪器,并且您正尝试在 Google Play
以外的其他平台上发布您的应用程序,则会向用户显示此错误。所以有两种可能的解决方案:
- 在您的应用中使用特殊的跟踪器(firebase 和 appmetrica 已经过测试并且可以)
- 在
Google Play
中发布您的应用
不是解决方案,但您可以使用调试密钥签署 release 版本以避免阻止 Google Play Protect 的安装。 Play Protect 似乎不会对使用自动生成的 debug.keystore
.
请注意,您的调试版本不是 未签名,它们只是使用 debug 密钥签名。
当然,您不能将该构建用于生产分发(Google Play、亚马逊等),但它仍然值得用于需要高频反馈循环的预生产内部测试。
您可以通过在 build.gradle
中添加配置来添加任务以使用 debug.keystore 构建版本,例如:
android {
buildTypes {
// add after the `release` definition
releaseDebugKey { initWith release }
}
signingConfigs {
// use debug.keystore for releaseDebugKey builds
releaseDebugKey { initWith debug }
}
}
然后执行 ./gradlew assembleReleaseDebugKey
以使用调试密钥构建发布版本。
可以通过三个选项来消除此警告:
- 您需要在 Play Store -> Play Protect -> 设置图标 -> Scan Device for security threats 中禁用 Play Protect
- 在 Google Play 商店 发布应用
- 提交 Appeal to the Play Protect.
如果您不想在 Playstore 上上传您的应用,那么我正在为仍在寻求解决此问题的其他人添加此答案,然后暂时有解决此问题的方法。
Google 正在提供安全设备验证 api,您只需在您的应用程序中调用一次,之后您的应用程序将不会被播放保护阻止:
这里有链接:
https://developer.android.com/training/safetynet/attestation#verify-attestation-response
Link 示例代码项目:
这是由于调试证书过期 只需删除位于
的debug.keystore
C:\Users\.android\
构建您的项目后,构建工具将重新生成一个新密钥,它会正常工作。 这里有一个参考:
https://developer.android.com/studio/publish/app-signing
我根据签名证书的详细信息更改了我的应用程序包名称,从而解决了这个问题。起初我用 com.foo.xyz 创建了应用程序 但我的证书组织是 'bar'。所以我将我的包名称更改为 com.bar.xyz,现在没有 google play protect 警告!
没有非常精确的方法来解决这个问题,但以下任务可以有效解决问题
点击无效Caches/Restart
做Android工作室的登录过程
点击生成签名包/APK
完整填写所有“生成签名的Bundle”信息。
不要使用相同的密码。确保您的密码与 “生成签名包” 不同的。最好输入美国地址01
估计是对波斯语敏感,程序里最好不要写波斯语。程序菜单用英文写,下次更新改成波斯语
删除额外权限
最后,请访问以下站点并请求故障排除 https://support.google.com/googleplay/android-developer/answer/2992033?hl=en
正确填写名字和姓氏
上传安装文件,例如,在 Dropbox 中,然后复制 link
如果您使用的是 Dropbox,请务必将 zero 末尾的数字更改为 link 到 一个 ,然后提交或使用 link 缩短网站。
如果您的请求未获批准,请缩短安装文件的link,因为 例如,使用 https://bit.ly 网站
在描述部分,说明问题。为了您的方便,我会 为您留下示例文本:
Greetings to the esteemed Google Team I am sending this request to fix the "Blocked by Pay Protect" error ****{Write your app info and your reasons}**** Fast, simple, free and lightweight, no annoying ads ,This app does not collect and store user data! Also, no unnecessary cost is imposed on the user and is completely free , It also certifies that this app does not harm user privacy and is not harmful to users Thank you
如果您没有收到确认邮件,请过几天再重复请求
如果硬件发生变化,请尝试重新下载或重新创建 jks 文件。
我也遇到过这样的问题,是将我的SSD从一台PC移到另一台PC后出现的。这暗示无需将应用程序发送到 Google 进行验证:正在安装旧的 apk 文件,没有任何警告。所以我用云端的替换了我硬盘上的 android.jks,创建了一个签名的 apk,问题就解决了。
在真实设备上安装我的应用程序进行调试后,我一直遇到这个问题。
问题是我在清单文件的主要 activity 上有 android:exported="true"
属性。我删除了它,Play Protect 警告消失了。