Android 12/13 App Link跳转浏览器而非应用,域名验证异常
Android 12/13 App Link 验证失败(状态1024)解决方案
针对你遇到的App Link跳转Chrome、域名禁用、验证状态1024的问题,按以下步骤排查修复:
1. 修复assetlinks.json语法错误
你提供的assetlinks.json末尾存在冗余的],正确格式应为JSON数组:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "<package-name>", "sha256_cert_fingerprints": ["<finger_print>"] } }]
语法错误会直接导致Google验证服务解析失败,是触发1024状态的常见原因。
2. 确保assetlinks.json可正常访问
- 必须部署在
https://<host-name>/.well-known/assetlinks.json路径下 - 响应头
Content-Type必须为application/json(不能是text/plain) - 直接用浏览器访问该URL,确保无重定向(301/302会中断验证)、无404/500错误
- 检查CDN、防火墙是否允许Googlebot爬虫访问该文件(Google验证服务依赖爬虫获取文件)
3. 修正Manifest配置细节
- 合并
<data>标签避免潜在冲突,将分散的data属性合并为单个标签:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="host-name" android:pathPrefix="/path" /> </intent-filter> - 确保所有处理该域名的
<intent-filter>都添加了android:autoVerify="true"属性
4. 严格核对签名与包名
- 确认assetlinks.json中的
package_name与Manifest里的package属性完全一致(大小写敏感) - SHA256指纹必须使用Google Play应用签名证书的指纹(而非上传密钥指纹),可在Play Console「应用签名」页面查看,确保无空格、大小写错误
5. 强制触发重新验证
- 清除现有验证缓存:
adb shell pm clear-app-link-settings <package_name> - 卸载重装应用(需通过Google Play渠道安装,侧载应用无法自动启用无开关状态)
- 开发者选项中开启「重置应用链接验证状态」(Android 12+)
6. 查看验证日志定位根因
执行以下命令获取验证过程的详细日志,从中提取具体失败原因:
adb logcat -s IntentFilterIntentService
日志会明确指出是文件不可访问、签名不匹配还是语法错误等问题。
关于应用信息中域名开关的说明
只有通过Google Play(生产/测试渠道)安装且验证完全通过的应用,系统才会自动启用域名并隐藏开关(如LinkedIn)。侧载安装的应用即使验证成功,仍会保留开关,这是系统的安全机制。
内容的提问来源于stack exchange,提问作者KsiAndroid
相关产品推荐
相关产品推荐

