首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >默认情况下,应用程序链接不会在Android 12中打开。可能的SHA256问题

默认情况下,应用程序链接不会在Android 12中打开。可能的SHA256问题
EN

Stack Overflow用户
提问于 2022-03-29 15:01:19
回答 3查看 10.9K关注 0票数 11

我已经通过上传这里的assetlinks.json文件建立了我的深度链接

代码语言:javascript
运行
复制
https://example.com/.well-known/assetlinks.json

它在Android 11之前运行良好。如果它不是从Playstore下载的(即安装自我的Android工作室或我从android工作室制作的apk文件,即使我用Keystore签了apk文件,它也能在android 12中运行)。

当它从Android 12上的playstore下载时,如果你进入应用程序设置->默认情况下打开->链接打开应用程序。我们可以看到,默认情况下,我的域是禁用的。我认为这与我在assetlinks.json中使用的assetlinks.json有关

我从Android的Assistant获得了我的assetlinks.json (我在生成asssetlink时也选择了keystore文件)。

如果我去我的play console->Setup->App integrity->App signing

我可以在Digital部分看到一个不同的Sha256 (也在App证书部分)

我可以在上传密钥证书部分看到我上传的Sha256。

我的问题是,我应该在sha256中使用哪个assetlinks.json?

我见过here,我应该同时使用这两种语言。如果需要,如何将两个sha256添加到assetlink.json中。我能把它加成逗号分隔的值吗??

代码语言:javascript
运行
复制
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5", "NE:XT:SH:A2:56:VA:LU:ER..."]
  }
}]

我希望深层链接在调试和发布版本中都能工作。

EN

回答 3

Stack Overflow用户

发布于 2022-03-30 11:05:25

在花了几个小时的时间后,终于解决了这个问题。

基本上,如果您使用google应用程序签名键来签署您的每个版本,您还需要将游戏控制台中的SHA256添加到assetlinks.json文件中,以便在play store应用程序上自动验证您的域。

这个问题从未被发现,因为用于非应用程序商店构建(测试构建)的签名密钥是不同的,这是我从Android studio App link助手那里得到的。

最后一个assetlinks.json看起来如下所示:

代码语言:javascript
运行
复制
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.android",
      "sha256_cert_fingerprints": [
        "SH:A2:56:FR:OM:PL:AY:CO:NS:OL:EX:......"
      ]
    }
  },
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.android",
      "sha256_cert_fingerprints": [
        "SH:A2:56:FR:OM:AN:DR:OI:DS:TU:DI:OO......"
      ]
    }
  }]

在我的例子中,playstore构建已经发布了。当我发布了一个新的更新,很少有其他错误,新的更新是自动验证的深度链接。

票数 3
EN

Stack Overflow用户

发布于 2022-05-24 11:01:57

这也是我的问题。

下面的答案节省了我的时间

结果发现如果你打破

代码语言:javascript
运行
复制
<data android:scheme="http" android:host="www.example.com"/>

变成2个标签

代码语言:javascript
运行
复制
<data android:scheme="http" />
<data android:host="www.example.com" />

AndroidManifest.xml中,应用程序链接将在Android12上得到成功的验证。这一变化似乎也向后兼容于较早版本的Android,尽管文档中并没有明确说明这一点。

Answer reference

票数 3
EN

Stack Overflow用户

发布于 2022-09-01 23:59:21

在我的例子中,在执行上述操作之后(资产链接中的所有SHA-256键,分离方案标记),最终的罪魁祸首是"path“标记。

在(不工作)之前:

代码语言:javascript
运行
复制
<data android:host="dl.example.com"
      android:path="/test" />
<data android:scheme="https" />

(工作)后:

代码语言:javascript
运行
复制
<data android:host="dl.example.com"/>
<data android:scheme="https"/>

希望它能帮到别人

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71664435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档