Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安装应用程序被play protect阻止_Android_Signature_Google Play Protect - Fatal编程技术网

Android 安装应用程序被play protect阻止

Android 安装应用程序被play protect阻止,android,signature,google-play-protect,Android,Signature,Google Play Protect,当尝试安装已签名的应用程序(app release.apk)时,将显示“播放保护阻止”警报,并且该应用程序未安装。但是,可以毫无问题地安装未签名的应用程序(app debug.apk) 错误消息: Play Protect无法识别此应用程序的开发人员。来自未知开发者的应用程序有时可能不安全 为什么会发生这种错误?解决办法是什么 尝试创建新密钥存储并替换为旧密钥存储,然后重建新的已签名APK 更新:请注意,如果您在服务器上使用http连接,则应使用SSL 看看:我找到了解决方案: 转到下面的链接并

当尝试安装已签名的应用程序(app release.apk)时,将显示“播放保护阻止”警报,并且该应用程序未安装。但是,可以毫无问题地安装未签名的应用程序(app debug.apk)

错误消息:

Play Protect无法识别此应用程序的开发人员。来自未知开发者的应用程序有时可能不安全

为什么会发生这种错误?解决办法是什么


尝试创建新密钥存储并替换为旧密钥存储,然后重建新的已签名APK

更新:请注意,如果您在服务器上使用http连接,则应使用SSL

看看:

我找到了解决方案: 转到下面的链接并提交您的申请


几天后,问题将得到解决

Google play通过您的密钥库找到您作为开发人员

当您生成新密钥库时,您的国家/地区IP可能在Google上被禁止

更改您的IP地址并生成新的密钥库,问题将得到解决


如果没有成功,请在Android Studio中使用另一个Gmail并生成新密钥库。

解决方案在于在生成已签名的apk时创建一个新密钥。 这对我来说很管用

  • 点击Build
  • 单击生成签名包/APK
  • 选择Bundle/APK(在我的例子中是APK)并单击Next
  • 单击Createnew(确保您在计算机上有密钥库路径)
  • 完成所有操作后,单击finish生成已签名的apk

  • 安装时,警告不会出现

    唯一对我有效的解决方案是使用java keytool并在命令行中生成一个.keystore文件,然后使用该.keystore文件对我的应用程序进行签名

    您可以在此目录
    C:\Program Files\java\jre7\bin

    打开一个命令窗口,切换到该目录,然后输入如下命令

    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的更多信息,请参阅以下位置的文档:


    有关签署Android应用程序的更多信息,请点击此处:

    如果您正在使用一些跟踪器,如
    google analytics
    amplitude
    ,并且您试图在
    google Play
    以外的其他平台上发布应用程序,则用户会出现此错误。因此,有两种可能的解决方案:

  • 在你的应用程序中使用特殊的跟踪器(firebase和appmetrica都经过测试,可以使用)
  • googleplay

  • 不是解决方案,但您可以使用调试密钥对发布版本进行签名,以避免从Google Play Protect阻止安装。对于使用自动生成的
    debug.keystore
    签名的生成,Play Protect似乎不会发出警告

    请注意,调试生成不是未签名的,它们只是使用调试密钥进行签名

    当然,您不能将构建用于生产分发(Google Play、Amazon等),但它仍然值得用于生产前内部测试,这需要一个高频反馈循环

    通过在
    build.gradle
    中添加配置,可以将任务添加到带有debug.keystore的build release中,类似于:

    android {
      buildTypes {
        // add after the `release` definition
        releaseDebugKey { initWith release }
      }
    
      signingConfigs {
        // use debug.keystore for releaseDebugKey builds
        releaseDebugKey { initWith debug }
      }
    }
    

    然后执行
    /gradlew assembleeresdebugkey
    以使用调试键构建发布版本。

    有三个选项可以消除此警告:

  • 您需要在Play Store->Play Protect->设置图标->扫描设备的安全威胁中禁用Play Protect
  • 在谷歌Play商店发布应用程序
  • 提交一份报告

  • 我为其他仍在寻求解决此问题的方法的人添加此答案。如果您不想在playstore上上载应用程序,则暂时有解决此问题的方法

    谷歌正在提供安全设备验证api,您只需在应用程序中调用一次,之后您的应用程序将不会被play protect阻止:

    以下是链接:

    示例代码项目的链接:


    这是由于调试证书过期 只需删除位于的
    debug.keystore

    C:\Users\.android\
    
    在构建项目之后,构建工具将重新生成一个新密钥,它将正常工作。 以下是参考资料:

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

    我通过根据签名证书详细信息更改应用程序包名称来解决此问题。首先,我使用com.foo.xyz创建了应用程序
    但我的证书组织是“bar”。所以我把包名改为com.bar.xyz,现在没有google play保护警告

    可能是因为大多数购买的证书的最大有效期大约在去年。设置过期日期大于50年。我本月创建了此应用程序,并将签名的有效期(年)设置为25年years@MostafaAzadi,Amirhosein我也有同样的问题。你找到什么了吗?是的,看起来很可笑。更糟糕的是,我只有在第一次安装应用程序时才会看到这个弹出窗口。即使我接受并安装了它,在下一次安装时,它会记录“安装被悄悄阻止”,并且我会在UI上收到一条“应用程序未安装”的消息。此时,只有完全禁用播放保护或清除设置中的播放存储数据,我才能再次弹出。这发生在我们使用与Play Store中的数十个其他应用程序相同的脚本生成的密钥上,这些应用程序工作正常。@Amirhosein感谢您的回答。我的应用甚至还没有发布到playstore。所以这不可能是游戏商店政策违反者