Flutter中HTTP/HTTPS协议的Deep Link无法跳转APP问题排查
HTTPS Deep Link 无法唤起APP的排查要点
1. Asset Links 文件有效性核查
- 校验JSON格式:确认
.well-known/assetlinks.json里的包名、SHA-256指纹(无冒号的纯字符串)与当前测试APP完全匹配,注意区分debug/release签名版本。 - 服务器响应检查:确保文件能通过HTTPS直接访问,返回
200 OK状态码,且Content-Type为application/json,无重定向、404等异常情况。 - 域名一致性:文件中声明的域名必须和intent-filter的
android:host完全一致,不能存在拼写错误。
2. Intent Filter 配置补全
当前HTTPS的intent-filter仅指定了scheme和host,未匹配具体路径,可尝试添加路径匹配规则,示例如下:
<data android:scheme="https" android:host="myapp.myserver.de" android:pathPrefix="/deeplinkPage" />
同时可通过命令 adb shell dumpsys package domain-preferred-apps 查看域名验证状态,确认android:autoVerify="true"是否通过系统校验。
3. 系统与场景限制
- Android版本限制:App Links(HTTPS类型Deep Link)仅支持Android 6.0(API 23)及以上版本,低版本设备需用户手动选择打开方式。
- 第三方工具拦截:部分扫码工具、浏览器会强制在内部打开HTTPS链接,可改用系统自带扫码工具或直接在浏览器地址栏输入链接测试。
- APP签名一致性:确保测试APP的签名与assetlinks中声明的指纹完全匹配,避免安装多个同包名但签名不同的应用。
4. Flutter 端配置验证
- 确认Flutter代码已正确监听Deep Link事件,比如使用相关插件时完成初始化,或
MainActivity中正确处理Intent传递的链接数据。 - 检查是否存在其他优先级更高的intent-filter,导致HTTPS链接被其他组件拦截。
内容的提问来源于stack exchange,提问作者derChris
相关产品推荐
相关产品推荐

