Android App Links通配符子域名Intent Filter验证失败求助
解决App Links通配符子域名验证失败的问题
核心原因
当配置*.example.com这类通配符主机的intent-filter时,Android系统会自动尝试验证根域名example.com下的assetlinks.json文件,而非你部署文件的子域名,这直接导致验证流程不匹配而失败。
具体修复方案
- 同步assetlinks.json到根域名
将你原本放在子域名.well-known目录下的assetlinks.json,同步一份到https://example.com/.well-known/assetlinks.json,确保该文件能正常访问,返回的JSON格式合法,且包含应用正确的SHA-256指纹与包名。 - 放弃通配符,配置独立intent-filter
如果不想在根域名部署文件,可以为每个需要的子域名单独配置intent-filter,比如分别添加www.example.com、blog.example.com这类明确主机的条目,系统会分别验证对应子域名的assetlinks.json,和你之前单个子域名验证成功的逻辑一致。 - 检查根域名文件的可访问性
用浏览器直接访问https://example.com/.well-known/assetlinks.json,确认返回内容与子域名下的一致,且HTTP状态码为200。同时确保服务器未限制该路径的访问权限。
额外注意点
- 确认
assetlinks.json中的包名、SHA-256指纹与应用完全匹配,生产环境必须使用release版本的签名指纹。 - 修复后可通过Android Studio的App Links Assistant工具重新测试,或用命令
adb shell am start -a android.intent.action.VIEW -d "https://sub.example.com"验证跳转是否生效。
内容的提问来源于stack exchange,提问作者Dmytro
相关产品推荐
相关产品推荐

