Android App Link验证失败报错ERROR_CODE_FETCH_ERROR该如何解决?
排查思路与解决方案
1. 服务器访问配置排查
- 优先验证无重定向:Google抓取工具不支持301/302跳转,也不支持HTTP自动转HTTPS,必须直接访问
https://你的域名/.well-known/assetlinks.json返回200状态码,无任何跳转逻辑。可通过curl -v https://你的域名/.well-known/assetlinks.json命令验证,查看返回头是否为200、是否存在Location跳转字段。 - 检查跨域配置:响应头必须包含
Access-Control-Allow-Origin: *(或允许工具所在域的跨域权限),否则工具的跨域请求会被浏览器拦截导致获取失败。 - 核对域名填写正确性:报错日志中出现
host.带后缀点的异常域名,确认你在验证工具中填写的域名没有多余字符、没有拼写错误,且填写时仅输入纯域名,不要带HTTP/HTTPS协议头、不要带路径后缀。 - 解除爬虫拦截规则:部分CDN、WAF防火墙会拦截非浏览器UA的请求,Google关联验证工具的UA包含
Googlebot或DigitalAssetLinks标识,检查服务端安全规则,将该UA或Google爬虫IP段加白。 - 确认无访问限制:assetlinks.json文件必须完全公开可访问,不能设置登录鉴权、IP访问限制等规则,公网任意环境都可直接获取文件内容。
2. assetlinks.json文件本身排查
- 验证JSON格式合法性:文件必须为UTF-8无BOM编码,不能包含注释、数组/对象末尾多余逗号等不符合JSON规范的内容,可先通过通用JSON校验工具检查格式是否正确。
- 核对应用配置信息:文件中
package_name字段必须和APP的applicationId完全一致,大小写敏感;sha256_cert_fingerprints字段必须和APP打包使用的签名文件SHA256指纹完全匹配,测试环境和正式环境签名不一致时需要分别配置对应的指纹,不要混用debug和release签名的指纹。
3. 验证工具使用排查
- 域名仅填写纯域名,不要带协议头、路径、端口等多余内容。
- 包名填写APP的applicationId,不要直接填AndroidManifest里的package属性(如果配置了applicationId后缀,二者会不一致)。
- 签名指纹仅填写SHA256格式的内容,不要填MD5、SHA1,也不要带多余的冒号分隔符。
内容的提问来源于stack exchange,提问作者Yuki N
相关产品推荐
相关产品推荐

