如何禁用打开Branch.io Deeplink时的消歧对话框?
解决Branch.io Deeplink消歧对话框问题(附App Links检测错误排查)
嘿,这个消歧对话框的问题我之前帮好几个开发者排查过——本质就是系统没认定你的App是该链接的官方处理方,咱们一步步来搞定它:
一、先把Digital Asset Links文件的核心要求盯死
要让系统跳过消歧,assetlinks.json必须完全达标,别踩这些坑:
- 路径绝对不能错:必须放在域名根目录下的
.well-known文件夹里,也就是https://你的域名/.well-known/assetlinks.json,少一个字符都不行 - 文件内容要精准对应你的App:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "你的应用包名(比如com.xxx.yyy)", "sha256_cert_fingerprints": ["你的App签名SHA-256指纹"] } }]
- 划重点:指纹要去掉冒号,别搞混debug和release签名!如果你测的是上架版App,必须用release签名的指纹,用debug指纹等于白搭
二、App Links Assistant检测失败?先查这几个点
Android Studio的这个工具报错,大概率是下面某一项出问题:
- 域名访问不通:
- 确保域名是HTTPS的(HTTP系统直接不认),而且直接在浏览器里打开
assetlinks.json能看到内容,没有404、重定向或者被防火墙/CDN拦截(比如有些CDN会默认屏蔽.well-known路径)
- 确保域名是HTTPS的(HTTP系统直接不认),而且直接在浏览器里打开
- 指纹不匹配:
- 别信AS自动生成的,自己用命令行重新拿:
keytool -list -v -keystore 你的签名文件路径.jks -alias 你的签名别名 - 复制指纹的时候记得把冒号删掉,比如把
AA:BB:CC改成AABBCC
- 别信AS自动生成的,自己用命令行重新拿:
- JSON格式错了:
- 别加注释!别漏逗号!用在线JSON校验工具扫一遍,确保语法完全正确
三、Branch.io那边也得同步配置
光弄好Asset Links还不够,Branch控制台也要跟上:
- 进入Link Settings,找到你的Android应用,把你的域名加到“App Domains”里
- 开启“Enable App Links”选项,把包名和刚才的SHA-256指纹填进去,和
assetlinks.json里的完全一致
四、测试的小技巧
- 先手动访问
assetlinks.json确认内容没问题,再用adb命令直接测试:adb shell am start -a android.intent.action.VIEW -d "你的Branch深度链接" - 如果之前设置过链接的默认打开方式,先去应用设置里清除默认,再重新点击链接测试
内容的提问来源于stack exchange,提问作者Louis
相关产品推荐
相关产品推荐

