微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

deeplink assetlinks 验证一台服务器,但不验证其他 android 应用程序

如何解决deeplink assetlinks 验证一台服务器,但不验证其他 android 应用程序

我有一个 Android 应用程序,它可以根据调试/发布版本与临时服务器和生产服务器进行对话。 这些版本可以通过 3 个不同的密钥(自定义调试、上传密钥或 Play 商店签名密钥)中的任何一个进行签名。

为了处理这种情况,我添加了以下文件,以便在 /.well-kNown/assetlinks.json 上从两台服务器(暂存和生产)提供服务。我尝试使用 chrome 和 postman 使用 content-type = application/json 来拉它。

[{
  "relation": ["delegate_permission/common.handle_all_urls"],"target": {
    "namespace": "android_app","package_name": "<package_id>","sha256_cert_fingerprints":
    ["<hashOfKey1>"]
  }
},{
  "relation": ["delegate_permission/common.handle_all_urls"],"sha256_cert_fingerprints":
    ["<hashOfKey2>"]
  }
},"sha256_cert_fingerprints":
    ["<hashOfKey3>"]
  }
}
] 

此外,intent-filter 数据中的主机是使用 manifestPlaceholders(似乎工作正常)指定的,如下所示:

                   <data
                    android:host="${hostName}"
                    android:path="/dashboard/profile/private"
                    android:scheme="https"
                    />

问题 当我构建调试(与登台服务器对话)应用程序时,应用程序可以很好地处理登台 url。但是当我构建发布应用程序时(我尝试通过签署自定义调试密钥和上传密钥),应用程序不处理生产网址。

我无法弄清楚它对生产链接不起作用。

解决方法

在寻找找到确切问题的方法后,我找到了标准工具。 https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://&relation=delegate_permission/common.handle_all_urls

问题是我指定了 example.com 并且内部 assetlinks.json 请求被重定向并由 www.example.com(我不知道)提供服务。当我使用提到的工具时,它告诉我不允许重定向。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。