当前位置: 首页 > 知识库问答 >
问题:

Android12上的应用链接“legacy_failure”验证错误

楚丰羽
2023-03-14

我有安装assetlinks。json和AndroidManifest。xml,以便在所有以前版本的Android中验证所需的应用程序链接。然而,这种验证在Android 12(目前为Beta 2)中不再有效<代码>adb shell pm获取应用程序链接

Android12中的应用链接验证似乎有一些变化,但是留档并没有非常明确地说明需要更改什么以及更改是否向下兼容。

共有3个答案

党源
2023-03-14
匿名用户

除了其他详细说明需要:

  • 确保您正在使用正确的sha256_cert_fingerprints值来测试构建类型,注意这可能会因您使用的是Debug还是Relise构建而有所不同
  • 使用单独的方案主机数据标记项作为您的意图过滤器定义

同样重要的是,确保使用android:autoVerify=“true”的意图过滤器不包含任何自定义uri方案(即launch://myapp/screen)因为这些可能会导致验证失败。

可以仅为自定义uri方案提供新的intent-Filter,在该方案中,您不将autoVerify标志设置为true

根据此处的文件,在运行以下命令的同时检查logcat,以确认验证是否有效。

adb shell pm验证应用程序链接——重新验证

查找术语intentfilteringtentop,其中将说明验证是否成功,即:

I/IntentFilterIntentOp:验证23已完成。成功:没错。失败的主机:。[CONTEXT service_id=244]

如果无法验证一个或多个意图过滤器定义,您可能会在Logcat中看到以下内容:

"d/ProcessState: Binder ioctl启用单向垃圾邮件检测失败:无效参数"并且没有提到IntentFilterIntentOp

年凯康
2023-03-14

我也面临同样的问题。

调试的sha256证书指纹

如果只注册,请在assetlinks上释放指纹。json,在调试版本上验证不起作用。所以adb shell pm获取应用程序链接

如果您同时添加两个指纹(调试),它将起作用

慕弘义
2023-03-14

结果证明如果你打破了

<data android:scheme="http" android:host="www.example.com" />

进入2个标签

<data android:scheme="http" />
<data android:host="www.example.com" />

AndroidManifest中。xml,应用程序链接将在Android 12上成功验证。这一变化在旧版本的Android上似乎也是向后兼容的,尽管文档中没有明确说明这一点。

 类似资料:
  • 我已经制作了我的应用程序,并将其发布到谷歌游戏商店。我使用Firebase Phone Authentication验证成员,在我将其发布到play商店之前,它运行良好,但当我从google play下载它时,它抛出一个错误: (此应用程序未被授权使用Firebase Authentification。请验证Firebase控制台中配置了正确的包名和SHA-1。[应用程序验证失败]) 我还在goo

  • 跟着https://developer.android.com/training/app-links/verify-site-associations.html并设置应用程序链接以打开来自谷歌的应用程序。根据这个链接 assetlinks.json文件从未正确部署到。NET应用程序。然而,当我删除assetlinks.json应用程序仍然对应用程序开放。甚至需要资产链接文件吗?还是这只是应用程序的

  • 我已经在我现有的android项目上附加了firebase,并运行了它。这是一个场景:如果应用程序通过开发者模式从android studio运行,它(通过电话号码登录Firebase)运行平稳,我也能成功登录。但是,每当我构建签名的调试apk,Firebase都不允许登录。它给出了以下信息: 此应用程序未被授权使用Firebase身份验证。请验证firebase控制台中配置了正确的包名称和SHA

  • 我正在用以下组件构建自己的证书链: 根证书是自签名证书,中间证书由根证书和用户由中间证书签名。 现在我想验证一个用户证书是否有其根证书的锚。 具有 验证是可以的。在下一步中,我将使用 验证结果显示 什么是错的?

  • 问题内容: 我们页面上的某些链接使用target =“ _ blank”在新窗口中打开。如何使selenium在正确的窗口中显示,以便可以验证页面是否链接到正确的页面? 这是我一直在尝试的方法: 问题答案: 您不需要将参数传递给selectWindow。浏览器将自动为您提供新的窗口焦点,您只需要告诉硒它已更改。还要确保在验证任何内容之前给新窗口足够的时间来实际加载:

  • 我想强制执行一个自定义的“/login”endpoint,该endpoint检查oauth-Access令牌并在令牌经过验证后启动会话。 这是我的登录控制器: 这是我的WebSecurityConfig: 问题是如果我调用“/login/方法,我会得到一个StackOverflow Error。 我已经找到了这一点,并尝试了authenticationManager和authenticationM