我已经通过上传这里的assetlinks.json文件建立了我的深度链接
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中。我能把它加成逗号分隔的值吗??
[{
"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..."]
}
}]
我希望深层链接在调试和发布版本中都能工作。
发布于 2022-03-30 11:05:25
在花了几个小时的时间后,终于解决了这个问题。
基本上,如果您使用google应用程序签名键来签署您的每个版本,您还需要将游戏控制台中的SHA256添加到assetlinks.json文件中,以便在play store应用程序上自动验证您的域。
这个问题从未被发现,因为用于非应用程序商店构建(测试构建)的签名密钥是不同的,这是我从Android studio App link助手那里得到的。
最后一个assetlinks.json看起来如下所示:
[
{
"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构建已经发布了。当我发布了一个新的更新,很少有其他错误,新的更新是自动验证的深度链接。
发布于 2022-05-24 11:01:57
这也是我的问题。
下面的答案节省了我的时间
结果发现如果你打破
<data android:scheme="http" android:host="www.example.com"/>
变成2个标签
<data android:scheme="http" />
<data android:host="www.example.com" />
在AndroidManifest.xml
中,应用程序链接将在Android12上得到成功的验证。这一变化似乎也向后兼容于较早版本的Android,尽管文档中并没有明确说明这一点。
发布于 2022-09-01 23:59:21
在我的例子中,在执行上述操作之后(资产链接中的所有SHA-256键,分离方案标记),最终的罪魁祸首是"path“标记。
在(不工作)之前:
<data android:host="dl.example.com"
android:path="/test" />
<data android:scheme="https" />
(工作)后:
<data android:host="dl.example.com"/>
<data android:scheme="https"/>
希望它能帮到别人
https://stackoverflow.com/questions/71664435
复制相似问题